# Set up account and security Source: https://www.stedi.com/docs/healthcare/account-settings Create or join a Stedi account, manage members and roles, set up API keys and SFTP credentials, and change your security settings. Learn how to manage Stedi accounts, members, and security settings. ## Accounts [#accounts] A Stedi account is a container for all of your Stedi activity and resources. Every account has a name, which you can find in the [Account profile](https://portal.stedi.com/app/settings/account-details). Your account also has an ID, which appears in dashboard URLs in the `account` URL parameter. Accounts can have unlimited members, and members can be assigned different roles with different permissions. It's possible to have multiple accounts, though using one account is recommended for most customers. If you need additional accounts, [contact us](https://www.stedi.com/contact). ### Create an account [#create-an-account] To create a Stedi account, go to the [signup page](https://portal.stedi.com/auth/sign-up). The signup process includes: 1. Filling out the signup form 2. Confirming your email address 3. Providing your company name New accounts start as free sandbox accounts, which are limited to test mode. You can upgrade to production at any time to process real transactions with payers. When you upgrade to a paid plan, you'll set up Multi-Factor Authentication (MFA) and agree to a Business Associate Agreement (BAA). ### Join an existing account [#join-an-existing-account] During [sign up](https://portal.stedi.com/auth/sign-up), Stedi checks whether your email domain is associated with an existing Stedi account. If it is, you can request to join that account instead of creating a new one. For example, if you sign up with `john.doe@example.com` and your company already has a Stedi account for `example.com`, you'll see the option to request to join it. This helps prevent duplicate accounts for the same organization. You'll receive an email when the account admin invites you to join the account and log in. ### Upgrade to production [#upgrade-to-production] Every Stedi account is either a sandbox account or a production account. - Sandbox accounts are free and limited to test mode. - Production accounts can process unlimited real transactions with payers. To upgrade from a sandbox account to production, click **Upgrade account** in the side navigation. Then, follow the upgrade flow. ### Change account theme [#change-account-theme] To change your account theme: 1. Click your account name in the side navigation. 2. Next to **Theme** you can choose between light, dark, or system (which matches your device settings). ### Set default landing page [#set-default-landing-page] You can customize which page opens when you log in to the Stedi portal. 1. Go to the [General page](https://portal.stedi.com/app/settings/account-details) in your account settings. 2. Choose a **Default landing page** option: - **Dynamic (default):** Stedi opens the claims view if you've processed at least one claim. Otherwise, Stedi opens the checks view. - **Claims:** Stedi opens the claims view. - **Eligibility:** Stedi opens the checks view. ### Change your password [#change-your-password] To change or reset your password: 1. Go to the [Authentication page](https://portal.stedi.com/app/settings/user-authentication) in your account settings. 2. Click **Change password** in the **Password** section. 3. Enter your current password, then enter and confirm your new password. 4. Click **Done**. You'll need to use the new password the next time you log in to Stedi. ### Delete an account [#delete-an-account] [Contact support](https://www.stedi.com/contact). You can't delete your account through the Stedi portal or API. ## Members [#members] Your account can have many members - a member represents an individual email address used to log into the account. You may want to add additional members so that other individuals in your organization can help manage transactions and troubleshoot issues. ### Invite members [#invite-members] To add members to your account: 1. Go to the [Members page](https://portal.stedi.com/app/settings/members) in your account settings. 2. Click **Invite member**. 3. Enter the email address of the member you want to add. 4. Select the member's role from the dropdown. 5. Click **Send invitation**. The invited member will receive an email with instructions about how to accept the invitation and log into the account. Invitations do not expire, but can be revoked by any account admin at any time before acceptance. Stedi apps may automatically add one or more support users with a Developer role to your account during installation. These support users allow your vendor to help you troubleshoot issues directly within your account and assist with implementation. ### Assign member roles [#assign-member-roles] Admins can use role-based access control (RBAC) to ensure only authorized users can access and modify resources in a Stedi account. An Admin has the highest permissions, and they can access and update all resources in your account, including members and billing details. We recommend assigning most members to the Operator role. This role allows members to manage transactions (like claims and eligibility checks) and submit transaction enrollments requests, but not change account settings or billing information. Admins can assign Stedi account members to one of five roles: - **Admin:** These users can access and modify all resources within a Stedi account. This includes adding and removing members, assigning member roles, adding billing information, configuring settings, running eligibility checks, submitting claims, managing API keys, and configuring resources. - **Developer:** These users can access and configure all resources, including managing API keys. However, they can't manage members or billing information. - **Operator:** These users can run eligibility checks, run insurance discovery checks, submit claims, submit transaction enrollments, and review transaction data. They can also manage guides and trading partners (EDI platform). Finally, they can interact with developer resources, but can't modify them. For example, they can call our APIs, but they can't create or delete API keys. Operator is the minimum required role for a user to interact with our clearinghouse and review transactions (such as completed eligibility checks) in Stedi. - **Read-only:** These users can view some account resources, but cannot modify them. For example, they can review processed transactions in Stedi but can't call APIs. - **Billing:** These users manage the account's billing. They can view and pay invoices, replace the payment method, edit billing details and billing email addresses, and add prepaid credits with a manual top-up. They can't change the pricing plan or access other account resources, including transactions, API keys, members, and other settings. An account can have up to 5 billing members, including pending invitations. Each member has one role, so a member who needs billing access and access to other resources needs the Admin role. To change a member's role: 1. Go to [Members page](https://portal.stedi.com/app/settings/members) in your account settings. 1. Click the pencil icon for a member, choose the appropriate **Role** from the list, and click **Update role**. ### Remove members [#remove-members] An account admin can remove other members from an account. Removed users will still retain their Stedi user credentials and access to other accounts of which they're a member. To remove a member from your account: 1. Go to [Members page](https://portal.stedi.com/app/settings/members) in your account settings. 1. Click the **...** (ellipses) to the right of the member you want to remove and select **Remove from account**. 1. Click **Are you sure?** to confirm. The removed member will no longer have access to your Stedi account. ## Multi-Factor Authentication (MFA) [#multi-factor-authentication-mfa] You can enable Multi-Factor Authentication (MFA) for your user account. To enable MFA, go to the [Account security page](https://portal.stedi.com/app/settings/account-security) in your account settings and click **Enable MFA**. ### Enforce MFA for all members [#enforce-mfa-for-all-members] You can require **all** users to enable MFA before accessing a Stedi account. To enforce MFA for all users: 1. Go to the [Account security page](https://portal.stedi.com/app/settings/account-security) in your account settings. 1. Click the button to **Enforce multi-factor authentication**. The next time a user logs into the Stedi account, Stedi prompts them to set up their MFA token: [https://portal.stedi.com/auth/setup-mfa](https://portal.stedi.com/auth/setup-mfa) Once you enable MFA for a Stedi account, it cannot be disabled. ### Reset a member's MFA [#reset-a-members-mfa] If a member loses access to their authenticator app, an account admin can reset their MFA token. To reset a member's MFA token: 1. Go to [Members page](https://portal.stedi.com/app/settings/members) in your account settings. 2. Click the **...** to the right of the member you want to reset. 3. Select **Reset member MFA**. The member will be prompted to set up a new MFA token the next time they log in. If they're currently logged in, they may not be logged out immediately - the reset process can take up to an hour. ### Update your MFA [#update-your-mfa] To update your MFA token: 1. Go to the [Account security page](https://portal.stedi.com/app/settings/user-authentication) in your account settings. 2. Click **Update** in the **Multi-factor authentication** section. 3. Follow the prompts to set up your new MFA token. 4. Click **Save**. ## Single Sign-On (SSO) and SCIM [#single-sign-on-sso-and-scim] Admins can configure Single Sign-On (SSO) and directory sync (SCIM) through Stedi's WorkOS integration. - SSO allows account members to sign in to Stedi through your chosen identity provider, such as Okta or OneLogin. - Directory sync (SCIM) automatically creates and removes Stedi accounts through your chosen identity provider. ### Request access [#request-access] To request SSO and/or directory sync for your account: 1. Go to the [Account security page](https://portal.stedi.com/app/settings/account-security) in your account settings. 2. Click **Contact us** to go to Stedi's contact form and request SSO for your account. Stedi support will review the request and enable access. ### Configure SSO [#configure-sso] Once Stedi support enables SSO access, you can configure it for your account: 1. Go to the [Account security page](https://portal.stedi.com/app/settings/account-security) in your account settings. 2. Click **Set up Single sign-on**. Stedi redirects you to the WorkOS portal for setup. 3. Follow the steps in the WorkOS portal to configure SSO for your identity provider. WorkOS provides detailed instructions for connecting each identity provider as part of the setup flow. You can also visit the WorkOS [Single Sign-On documentation](https://workos.com/docs/sso) for more details. Once configured, you can manage the account's SSO settings from the [Account security page](https://portal.stedi.com/app/settings/account-security). This includes: - **Require SSO for all members:** Toggling this to **ON** disables the standard email and password login process - account members will only be able to access Stedi through SSO. - **Default role for new members:** Choose which member role is automatically assigned to users when they join the account. ### Configure directory sync (SCIM) [#configure-directory-sync-scim] Once SSO is configured, you can optionally also set up directory sync (SCIM) through WorkOS. If you don't see directory sync in your account, contact Stedi support to request access. To configure directory sync: 1. Go to the [Account security page](https://portal.stedi.com/app/settings/account-security) in your account settings. 2. In the **Single sign-on (SSO)** section, click **Set up directory sync**. Stedi redirects you to the WorkOS portal for setup. 3. Follow the steps in the WorkOS portal to configure directory sync for your identity provider. WorkOS provides detailed instructions for connecting each identity provider as part of the setup flow. You can also visit the WorkOS [directory sync documentation](https://workos.com/docs/directory-sync) for more details. Once configured, you can review automatically created user accounts from the [Members page](https://portal.stedi.com/app/settings/members) in your account settings. You can manage the account's directory sync settings from the [Account security page](https://portal.stedi.com/app/settings/account-security). ## Reauthentication [#reauthentication] Stedi requires all users to sign in every 12 hours. This aligns our maximum session duration with National Institute of Standards and Technology (NIST) best practices, and it isn't configurable. ### Enable inactivity sign-out [#enable-inactivity-sign-out] Admins can opt in to have account members automatically sign out after 30 minutes of inactivity. This reduces the risk of unattended workstations being used to access patient data. To enable inactivity sign-out for your account: 1. Go to the [Account security page](https://portal.stedi.com/app/settings/account-security) in your account settings. 2. Click **Enable inactivity sign-out** under **Inactivity sign-out**. Once enabled, members will be automatically signed out of the Stedi portal after 30 minutes of inactivity. Activity includes mouse movements, keyboard input, and touch events. ## Developer settings [#developer-settings] You can create API keys and SFTP credentials from your account settings. ### SFTP setup [#sftp-setup] On the [SFTP setup page](https://portal.stedi.com/app/settings/developer/sftp), you can: - Create both test and production SFTP credentials to upload claims and retrieve claim responses through Stedi's fully-managed SFTP server. - Control whether you'll receive 999s for fully accepted functional groups or only when there are rejected transactions. - Configure file naming conventions for files you receive through Stedi clearinghouse. Choose between **Semantic** filenames (which include a timestamp, UUID, and semantic identifier for the transaction type) or **UUID only** filenames. Visit [Submit claims through SFTP](/healthcare/submit-claims-sftp-setup#create-sftp-users) for more details. ### API keys [#api-keys] On the [API keys page](https://portal.stedi.com/app/settings/developer/api-keys), you can create both test and production API keys. - Test API keys let you send requests to Stedi healthcare APIs and receive realistic responses so you can test your integration without sending data to payers. Stedi supports test API keys for real-time eligibility check and claims processing endpoints. - Production API keys allow you to authenticate with all Stedi APIs. ## Notification preferences [#notification-preferences] You can manage your notification preferences from the [Notifications page](https://portal.stedi.com/app/settings/notifications) in your account settings. Stedi sends notifications through two channels: in-app (the bell icon in the side navigation) and email. ### Notification categories [#notification-categories] Notifications are grouped into the following categories: - **Enrollments:** Stedi sends notifications when a transaction enrollment request changes status to `PROVISIONING`, `PROVIDER_ACTION_REQUIRED`, `LIVE`, or `REJECTED`. The [email set as the **Stedi contact person**](/healthcare/create-manage-transaction-enrollments#stedi-contact-email) receives in-app notifications for status changes as well as a batched email once per hour with all updates. - **Event destinations:** When event deliveries to an event destination repeatedly fail, Stedi sends in-app notifications and emails to every member of the Stedi account at [set intervals](/healthcare/event-destinations-message-handling#notifications). - **Exports:** Stedi sends in-app notifications to the user who requested an export when their claims list or Electronic Remittance Advice (ERA) list export is ready to download. Export files are available for 30 days. - **Billing & payments:** For pay-as-you-go accounts, Stedi sends notifications to the billing email address, account admins, and billing members when automatic recharge payments fail, when account access is suspended due to insufficient funds, and when access is restored. Visit [Billing](/healthcare/billing#failed-payments) for more details. - **Account & access:** Stedi sends you notifications when you're invited to new Stedi accounts and when Stedi has approved an account upgrade. Account admins receive notifications when another user is requesting to join their Stedi account. ### Manage preferences [#manage-preferences] On the [Notifications page](https://portal.stedi.com/app/settings/notifications), you can set your preferences for both in-app and email notifications. Check or uncheck the boxes to opt in or opt out for each type. - **Default is opt-in:** All notifications are enabled by default. - **Preferences are per user:** Your notification preferences apply across all Stedi accounts you can access. They're tied to your signed-in user, not to a specific account. - **Independent channels:** Turning off email delivery for a notification type doesn't affect in-app delivery, and vice versa. # Delete Enrollment Document Source: https://www.stedi.com/docs/healthcare/api-reference/delete-enrollment-document This endpoint deletes the specified PDF document associated with a [transaction enrollment](/healthcare/transaction-enrollment). 1. Call this endpoint with the document ID for the PDF document you want to delete. The document ID is returned in the responses for the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) and [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoints. 2. The endpoint returns an empty response to indicate that the document has been successfully deleted. You can also delete enrollment documents manually from the enrollment's details page in the Stedi portal. ## API Specification Deletes the specified PDF document associated with a transaction enrollment. **Endpoint:** `DELETE /documents/{documentId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`documentId`** (path) (required): The document ID for the PDF document you want to delete. The document ID is returned in the responses for the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) and [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoints. - Type: `string` ### Responses #### 200 DeleteEnrollmentDocument 200 response #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Delete Provider Source: https://www.stedi.com/docs/healthcare/api-reference/delete-enrollment-provider This endpoint allows you to delete providers without associated [transaction enrollments](/healthcare/transaction-enrollment). If you need to delete a provider that has associated enrollments, contact support. ## API Specification Deletes a provider record. Providers can only be deleted if they have no associated enrollments. This operation is idempotent. **Endpoint:** `DELETE /providers/{providerId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`providerId`** (path) (required): The Stedi-assigned identifier for the provider you want to delete. - Type: `string` ### Responses #### 200 DeleteProvider 200 response #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Delete Enrollment Source: https://www.stedi.com/docs/healthcare/api-reference/delete-enrollment This endpoint allows you to delete a [transaction enrollment](/healthcare/transaction-enrollment) that is still in `DRAFT` status. ## API Specification Deletes an enrollment request. Only enrollments in DRAFT status can be deleted. This operation is idempotent. **Endpoint:** `DELETE /enrollments/{enrollmentId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`enrollmentId`** (path) (required): The Stedi-assigned identifier for the enrollment you want to delete. - Type: `string` ### Responses #### 200 DeleteEnrollment 200 response #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Delete Event Destination Source: https://www.stedi.com/docs/healthcare/api-reference/delete-event-destinations-destination This endpoint permanently deletes an event destination. Deletion is irreversible. If you need to temporarily stop event delivery, consider using the [Update Destination](/healthcare/api-reference/post-event-destinations-update-destination) endpoint to set the destination status to `DISABLED` instead. 1. Call this endpoint with the destination's ID. 2. Stedi deletes the destination and stops delivering events to it. ## API Specification Deletes an existing destination. This action is irreversible. Deleting a destination that is already deleted succeeds with the same response (idempotent). **Endpoint:** `DELETE /destinations/{destinationId}` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`destinationId`** (path) (required): The unique identifier for the destination. You can retrieve destination IDs with the [List Destinations](https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-list-destinations) endpoint. - Type: `string` - **`Idempotency-Key`** (header): A unique string to identify this request to the server. If not set, Stedi generates one automatically. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents duplicate operations due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Responses #### 204 DeleteEventDestination 204 response #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 404 NotFoundException 404 response **Schema:** `NotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # Retrieve Claim Source: https://www.stedi.com/docs/healthcare/api-reference/get-claim-record Retrieve a single claim record with summary information about its most recent submission, including [processing status](/healthcare/claims-view#claim-processing-status), charge and paid totals, patient name, dates of service, and claim type. Use this endpoint when you need to check a claim's current status without fetching the full submission history. 1. Call this endpoint with the claim ID. You can retrieve this ID from: - The `claimId` property in the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint response. Note: Other claim submission endpoints don't return this property. - The `items.id` property in the [List Claims](/healthcare/api-reference/list-claims) endpoint response. - A claim's details page in the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Stedi returns the claim record with summary information from the most recent submission, including processing status, charge and paid totals, patient information, and dates of service. To view the full history of submissions, acknowledgments, and payments for this claim, use the [Retrieve Claim Timeline](/healthcare/api-reference/get-claim-timeline) endpoint. ## API Specification Retrieve summary information for a claim, including current processing status and key details from its most recent submission **Endpoint:** `GET /claims/{id}` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Parameters - **`id`** (path) (required): A unique identifier for the claim within Stedi. You can retrieve this ID from the `claimId` property in the Create Professional Claim JSON endpoint response or from the List Claims lifecycle endpoint. - Type: `string` ### Responses #### 200 GetClaim 200 response **Schema:** `GetClaimResponseContent` **Properties:** - **`datesOfService`** (`object`): A date range. `end` is inclusive. A single date of service carries only `start`. - **`datesOfService.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`datesOfService.start`** (`string`) (required): The start date of the range, in `YYYY-MM-DD` format. - **`id`** (`string`) (required): A unique identifier for the claim within Stedi. This ID stays the same throughout the claim's entire lifecycle. For example, the claim ID is the same for the initial submission and any resubmissions. - **`patientControlNumber`** (`string`) (required): The patient control number you assigned to the claim. - **`patientName`** (`object`): The name of the patient who received the services on the claim. - **`patientName.firstName`** (`string`): The patient's first name. - **`patientName.lastName`** (`string`): The patient's last name. - **`patientName.middleName`** (`string`): The patient's middle name. - **`patientName.suffix`** (`string`): The patient's name suffix. - **`status`** (`string`) (required): The claim's current processing status. - `SUBMITTED`: You submitted the claim to Stedi but haven't yet received a 277CA response from Stedi or the payer. - `RECEIVED`: The clearinghouse or payer has acknowledged receipt of the claim. This doesn't mean the claim has been accepted for adjudication. - `ACCEPTED`: The payer has accepted the claim into their adjudication system and it's currently being processed or adjudicated. - `REJECTED`: Either Stedi or the payer rejected the claim before the start of adjudication. This can happen even when the payer has acknowledged receipt. - `PROCESSED`: The payer has adjudicated the claim. Check `totalClaimPaidAmount` to see how much was paid. - `DENIED`: The payer has denied the claim. - `UNKNOWN`: Stedi can't determine a single status for this claim, usually because the payer's responses are mixed or incomplete. - Allowed values: `SUBMITTED`, `RECEIVED`, `ACCEPTED`, `REJECTED`, `PROCESSED`, `DENIED`, `UNKNOWN` - **`statusReportedBy`** (`string`) (required): The entity that reported a claim status. - `PAYER`: The payer reported the status, in a 277CA claim acknowledgment or an 835 ERA. - `CLEARINGHOUSE`: A clearinghouse reported the status, either Stedi or an intermediary clearinghouse between Stedi and the payer. - Allowed values: `PAYER`, `CLEARINGHOUSE` - **`stediPayerId`** (`string`): The payer identifier in Stedi's system. This is the Stedi payer ID listed in the Stedi [Payer Network](https://www.stedi.com/healthcare/network). - **`submittedAt`** (`string`) (required): The time Stedi processed the claim's most recent submission. - **`totalClaimChargeAmount`** (`string`) (required): The total charge amount of the claim's most recent submission. - **`totalClaimPaidAmount`** (`string`): The total amount payers have paid on this claim, summed across every claim payment information record linked to it. Excludes claim payment information with the `PREDETERMINATION_PRICING_ONLY` status, where the payer priced the claim without paying it. Reversals carry a negative amount, so they subtract from the total. Absent until Stedi receives an 835 ERA for the claim. - **`type`** (`string`) (required): The type of claim. Each type corresponds to a different 837 transaction set and paper claim form. - `DENTAL`: An 837D dental claim, the electronic equivalent of the ADA Dental Claim Form. - `INSTITUTIONAL`: An 837I institutional claim, the electronic equivalent of the UB-04 form. - `PROFESSIONAL`: An 837P professional claim, the electronic equivalent of the CMS-1500 form. - Allowed values: `DENTAL`, `INSTITUTIONAL`, `PROFESSIONAL` **Example:** ```json { "datesOfService": { "start": "2026-01-05" }, "id": "clm_01K6XFP3TZ8RA9X84963NMW40N", "patientControlNumber": "123456", "patientName": { "firstName": "John", "lastName": "Doe", "middleName": "Michael", "suffix": "Jr" }, "status": "PROCESSED", "statusReportedBy": "PAYER", "stediPayerId": "ABCDE", "submittedAt": "2026-01-16T10:00:00Z", "totalClaimChargeAmount": "832.00", "totalClaimPaidAmount": "200.00", "type": "PROFESSIONAL" } ``` #### 400 GetClaim400Error 400 response **Schema:** `GetClaim400ErrorResponseContent` #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 GetClaim403Error 403 response **Schema:** `GetClaim403ErrorResponseContent` #### 404 GetClaim404Error 404 response **Schema:** `GetClaim404ErrorResponseContent` #### 429 GetClaim429Error 429 response **Schema:** `GetClaim429ErrorResponseContent` #### 500 GetClaim500Error 500 response **Schema:** `GetClaim500ErrorResponseContent` # Retrieve Claim Timeline Source: https://www.stedi.com/docs/healthcare/api-reference/get-claim-timeline Retrieve a paginated history of a claim's timeline entries including submissions, 277CA claim acknowledgments, and claim payment information from Electronic Remittance Advice (ERAs). Use this endpoint when you need to view the complete lifecycle of a claim. 1. Call this endpoint with the claim ID. You can retrieve this ID from: - The `claimId` property in the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint response. Other claim submission endpoints don't return this property. - The `items.id` property in the [List Claims](/healthcare/api-reference/list-claims) endpoint response. - A claim's details page in the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Stedi returns a paginated list of timeline entries, ordered by most recent first. ## API Specification Retrieve a paginated list of a claim's timeline entries, newest first. Timeline entries include submissions, acknowledgments, and claim payment information **Endpoint:** `GET /claims/{id}/timeline` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Parameters - **`id`** (path) (required): A unique identifier for the claim within Stedi. You can retrieve this ID from the `claimId` property in a claim submission response or from the list claims endpoint. - Type: `string` - **`pageSize`** (query): The maximum number of timeline entries to return per page. Defaults to 100. - Type: `number` - **`pageToken`** (query): The `nextPageToken` from a previous call to this operation. If not specified, Stedi returns the first page of results. - Type: `string` ### Responses #### 200 GetClaimTimeline 200 response **Schema:** `GetClaimTimelineResponseContent` **Properties:** - **`items`** (`array of ClaimTimelineEvent objects`) (required): Timeline entries for the claim, newest first, including submissions, acknowledgments, and claim payment information. - **`nextPageToken`** (`string`): Token you can supply in subsequent requests to retrieve the next page of results. If absent, there are no more results. **Example:** ```json { "items": [ { "claimPaymentInformation": { "checkOrEftTraceNumber": "TRN123456789", "claimPaymentAmount": "200.00", "id": "clp_01K6XFP3TZ8RA9X84963NMW43R", "patientResponsibilityAmount": "50.00", "processedAt": "2026-01-16T10:00:00Z", "statusCode": "PROCESSED_AS_PRIMARY", "totalClaimChargeAmount": "250.00" } }, { "claimAcknowledgment": { "id": "ack_01K6XFP3TZ8RA9X84963NMW42Q", "processedAt": "2026-01-08T09:30:00Z", "reportedBy": "PAYER", "sourceName": "ACME INSURANCE", "status": "ACCEPTED" } }, { "professionalClaimSubmission": { "datesOfService": { "start": "2026-01-05" }, "id": "sbm_01K6XFP3TZ8RA9X84963NMW41P", "patientControlNumber": "123456", "patientName": { "firstName": "John", "lastName": "Doe", "middleName": "Michael", "suffix": "Jr" }, "processedAt": "2026-01-07T15:12:45Z", "stediPayerId": "ABCDE", "totalClaimChargeAmount": "250.00" } } ], "nextPageToken": "eyJsYXN0SWQiOiIwMUs2WEZQMyJ9" } ``` #### 400 GetClaimTimeline400Error 400 response **Schema:** `GetClaimTimeline400ErrorResponseContent` #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 GetClaimTimeline403Error 403 response **Schema:** `GetClaimTimeline403ErrorResponseContent` #### 404 GetClaimTimeline404Error 404 response **Schema:** `GetClaimTimeline404ErrorResponseContent` #### 429 GetClaimTimeline429Error 429 response **Schema:** `GetClaimTimeline429ErrorResponseContent` #### 500 GetClaimTimeline500Error 500 response **Schema:** `GetClaimTimeline500ErrorResponseContent` # Retrieve Eligibility PDF (271) Source: https://www.stedi.com/docs/healthcare/api-reference/get-eligibility-pdf This endpoint retrieves the [eligibility PDF](/healthcare/eligibility-pdf) for a 270/271 eligibility check. Stedi generates a PDF for eligibility checks with valid 271 responses. The PDF contains a summary of the request details and a human-readable version of the 271 response. 1. Call this endpoint with the `eligibilityCheckId` path parameter set to the eligibility check's ID. You can retrieve this ID from the: - `id` property of the real-time JSON, Raw X12, and SOAP eligibility check endpoint responses. - `items.id` property of the Poll Batch Eligibility Checks endpoint response. - Eligibility check's details page within the [Stedi portal](https://portal.stedi.com/app/healthcare/eligibility). 2. The endpoint returns the PDF as a base64-encoded string by default. To receive unencoded binary PDF data instead, include the `Accept: application/pdf` request header. To view the PDF, save the unencoded response body to a file with a `.pdf` extension. ```bash curl --request GET \ --url "https://manager.us.stedi.com/2024-04-01/eligibility-manager/eligibility-checks/{eligibilityCheckId}/pdf" \ --header "Accept: application/pdf" \ --header "Authorization: " \ --output ~/Desktop/eligibility.pdf ``` Stedi generates the PDF within milliseconds after an eligibility check completes, so you can request it as soon as you receive the check response. In rare cases, it takes slightly over a second. This endpoint returns an HTTP `404` error until the PDF is available. ## API Specification Retrieve a PDF version of the 271 benefits response for the specified eligibility check **Endpoint:** `GET /eligibility-manager/eligibility-checks/{eligibilityCheckId}/pdf` **Base URL:** `https://manager.us.stedi.com/2024-04-01` ### Parameters - **`eligibilityCheckId`** (path) (required): The globally unique identifier for this eligibility check across all Stedi accounts. It's formatted as `ec_`. For example: `ec_550e8400-e29b-41d4-a716-446655440000`. You can find it: - In the `id` property of the real-time JSON, Raw X12, and SOAP eligibility check endpoint responses. - In the `items[].id` property of the Poll Batch Eligibility Checks endpoint response. - On the eligibility check's details page within the Stedi portal. - Type: `string` ### Responses #### 200 GetEligibilityCheckPdf 200 response #### 400 PdfRenderLimitExceededException 400 response **Schema:** `PdfRenderLimitExceededExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Download Enrollment Document Source: https://www.stedi.com/docs/healthcare/api-reference/get-enrollment-document-download This endpoint returns a pre-signed URL that you can use to download a PDF document related to the specified [transaction enrollment](/healthcare/transaction-enrollment). 1. Call this endpoint with the document ID for the PDF document you want to download. The document ID is returned in the responses for the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) and [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoints. 2. The endpoint returns a pre-signed URL that you can use to download the specified PDF document. 3. Use a `GET` request to download the PDF document from the pre-signed URL. ```bash curl --request GET \ --url "" \ --output /path/to/file.pdf ``` You can also download enrollment documents manually from the enrollment's details page in the Stedi portal. ## API Specification Returns a pre-signed URL to download the specified enrollment document. **Endpoint:** `GET /documents/{documentId}/download` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`documentId`** (path) (required): The document ID for the PDF document you want to download. The document ID is returned in the responses for the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) and [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoints. - Type: `string` ### Responses #### 200 CreateEnrollmentDocumentDownload 200 response **Schema:** `CreateEnrollmentDocumentDownloadResponseContent` **Properties:** - **`documentId`** (`string`) (required): The document ID for the PDF document associated with the `downloadUrl`. - **`downloadUrl`** (`string`) (required): The pre-signed URL to download the document. **Example:** ```json { "documentId": "doc-123e4567-e89b-12d3-a456-426614174000", "downloadUrl": "https://s3.amazonaws.com/enrollment-documents/doc-123e4567-e89b-12d3-a456-426614174000/provider-license.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=..." } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # List Enrollments Source: https://www.stedi.com/docs/healthcare/api-reference/get-enrollment-list-enrollments This endpoint retrieves a list of all [transaction enrollments](/healthcare/transaction-enrollment) in your Stedi account. You can filter the results by various criteria, such as a query string (fuzzy matching is supported), enrollment status, creation date, provider names, provider NPIs, provider tax IDs, and Stedi payer IDs. When a query parameter is an array, you can include it more than once in the URL to filter by multiple values. | Query parameters | Endpoint returns | |-----------------|-------------| | `?providerNames=John%20Doe&providerNames=Jane%20Doe` | Enrollments associated with either John Doe or Jane Doe. | | `?status=LIVE` | Enrollments in `LIVE` status. | | `?filter=OS&createdFrom=2025-01-01T00:00:00Z` |
  • Enrollments with provider names, provider NPIs, provider tax IDs, or Stedi payer IDs containing `os` or `OS`. The search is case-insensitive, and fuzzy matching is supported.
  • Enrollments created after `2025-01-01T00:00:00Z`.
| ## API Specification Lists transaction enrollment records with optional filtering and pagination. **Endpoint:** `GET /enrollments` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`pageSize`** (query): The maximum number of elements to return in a page. If not specified, the default is 100. - Type: `number` - **`pageToken`** (query): The `nextPageToken` value from a previous response. You can use this to get the next page of results. If not set, Stedi returns the first page of results. - Type: `string` - **`filter`** (query): Filter for enrollments with properties matching a query string. You can provide all or part of a provider name, NPI, or tax ID. You can also provide all or part of a payer's [Stedi payer ID](https://www.stedi.com/docs/healthcare/supported-payers#stedi-payer-id) - primary payer IDs and aliases aren't supported. The search is case-insensitive and supports fuzzy matching. For example, providing `?filter=OS` returns enrollments with `provider.name` containing `os` or `OS` (such as `Joseph`) and Stedi payer IDs containing `OS`, such as `OSBLI` for OptumHealth Salt Lake County. - Type: `string` - **`status`** (query): Filter for enrollments with specific statuses. You can include this parameter multiple times to filter for multiple statuses. For example, `?status=LIVE&status=REJECTED` returns enrollments that are in either `LIVE` or `REJECTED` status. - Type: `array` - **`providerNpis`** (query): Filter for enrollments associated with specific provider NPIs. You can include this parameter multiple times to filter for multiple NPIs. For example, `?providerNpis=1234567890&providerNpis=0987654321` returns enrollments associated with either of the specified NPIs. - Type: `array` - **`providerTaxIds`** (query): Filter for enrollments associated with specific provider tax IDs. You can include this parameter multiple times to filter for multiple tax IDs. For example, `?providerTaxIds=123456789&providerTaxIds=987654321` returns enrollments associated with either of the specified tax IDs. - Type: `array` - **`providerNames`** (query): Filter for enrollments associated with specific provider names. This search is case-insensitive but doesn't support fuzzy matching. The name you provide must match the provider's name exactly, including spaces, but capitalization is ignored. You can include this parameter multiple times to filter for multiple names. For example, `?providerNames=John%20Doe&providerNames=Jane%20Doe` returns enrollments associated with either John Doe or Jane Doe. - Type: `array` - **`providerIds`** (query): Filter for enrollments associated with specific provider IDs. The provider ID is a UUID Stedi assigns to each provider record upon creation, allowing you to differentiate between provider records that share the same NPI. It's returned in the `id` property of the [Create Provider](/healthcare/api-reference/post-enrollment-create-provider#response.id) and [Retrieve Provider](/healthcare/api-reference/get-enrollment-provider#response.id) responses. You can include this parameter multiple times to filter for multiple providers. For example, `?providerIds=10334e76-f073-4b5d-8984-81d8e5107857&providerIds=10234e76-f067-4b5d-8984-81d8e5107123` returns enrollments associated with either of the specified providers. - Type: `array` - **`payerIds`** (query): Filter for enrollments associated with specific [Stedi payer IDs](https://www.stedi.com/docs/healthcare/supported-payers#stedi-payer-id). This parameter only supports Stedi payer IDs, not primary payer IDs or aliases. It also doesn't support fuzzy matching. The payer ID you provide must match the Stedi payer ID exactly, including capitalization. You must include leading `0` characters - for example, use `00540` for SISCO, not `540`. You can include this parameter multiple times to filter for multiple payer IDs. For example, `?payerIds=HGJLR&payerIds=EWDCI` returns enrollments associated with either of the specified payer IDs. - Type: `array` - **`sources`** (query): Filter for enrollments submitted through specific sources, such as the API or UI. You can include this parameter multiple times to filter for multiple sources. For example, `?sources=API&sources=UI` returns enrollments submitted through either of the specified sources. - Type: `array` - **`transactions`** (query): Filter for enrollments for specific transaction types. You can include this parameter multiple times to filter for multiple types. For example, `?transactions=eligibilityCheck&transactions=claimStatus` returns enrollments for both 270/271 eligibility checks and 276/277 real-time claim status. - Type: `array` - **`createdFrom`** (query): Filter for enrollments created from a specific date. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi returns enrollments with a `createdAt` timestamp on or after this date. - Type: `string` - **`createdTo`** (query): Filter for enrollments created before a specific date. The time must be later than `createdFrom`, if present. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi only returns enrollments with a `createdAt` timestamp before this date. - Type: `string` - **`statusUpdatedFrom`** (query): Filter for enrollments whose status was last updated from a specific date. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi returns enrollments with a `statusLastUpdatedAt` timestamp on or after this date. - Type: `string` - **`statusUpdatedTo`** (query): Filter for enrollments whose status was last updated before a specific date. The time must be later than `statusUpdatedFrom`, if present. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi only returns enrollments with a `statusLastUpdatedAt` before this date. - Type: `string` - **`importId`** (query): The import ID associated with an enrollment through a CSV bulk import. This ID is only available for enrollments created through the CSV import process. - Type: `string` - **`requestedEffectiveDateFrom`** (query): Filter for enrollments with a requested effective date on or after this date, in YYYYMMDD format. For example, `?requestedEffectiveDateFrom=20260101` returns enrollments with a `requestedEffectiveDate` of `20260101` or later. - Type: `string` - **`requestedEffectiveDateTo`** (query): Filter for enrollments with a requested effective date on or before this date, in YYYYMMDD format. The date must be the same as or later than `requestedEffectiveDateFrom`, if present. For example, `?requestedEffectiveDateTo=20261231` returns enrollments with a `requestedEffectiveDate` of `20261231` or earlier. - Type: `string` - **`lastEraReceivedFrom`** (query): Filter for enrollments with a `lastEraReceivedAt` timestamp on or after this value. Only enrollments with an ERA are included. You can use this filter with `lastEraReceivedTo` to define a date range. For example, setting this to `2025-01-01T00:00:00Z` returns enrollments with a `lastEraReceivedAt` on or after that date. - Type: `string` - **`lastEraReceivedTo`** (query): Filter for enrollments with a `lastEraReceivedAt` timestamp on or before this value. Only enrollments with an ERA are included. This value must be later than `lastEraReceivedFrom`, if present. For example, setting this to `2025-01-01T00:00:00Z` returns enrollments with a `lastEraReceivedAt` on or before that date. - Type: `string` - **`userEmails`** (query): Filter for enrollments associated with specific submitter emails. This is the `userEmail` property in [Create Enrollment](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-create-enrollment) requests, or the **Stedi contact person** in the portal. This search is case-insensitive but doesn't support fuzzy matching. The email you provide must match the submitter's email exactly, but capitalization is ignored. You can include this parameter multiple times to filter for multiple submitter emails. For example, `?userEmails=alice%40example.com&userEmails=bob%40example.com` returns enrollments submitted by either `alice@example.com` or `bob@example.com`. - Type: `array` - **`sortBy`** (query): Sort the results by one or more properties. By default, Stedi sorts results by the `createdAt` property in descending order. Supply a query string with each property appended using `&`. Each property must be provided in a `property:direction` format, where `property` is the name of the property to sort by and `direction` is the sort direction, either `asc` (ascending) or `desc` (descending). - When you don't include `id`, Stedi automatically adds it as the final sort criterion to ensure deterministic results. - When you provide multiple properties, Stedi sorts by their order in the query string. For example, if you provide `?sortBy=updatedAt:desc&sortBy=id:asc`, Stedi sorts first by `updatedAt` in descending order. If multiple records share the same `updatedAt` date, Stedi then sorts those records by `id` in ascending order. **Supported properties:** `createdAt`, `updatedAt`, `statusLastUpdatedAt`, `id`, `requestedEffectiveDate`, `lastEraReceivedAt`, `status`, `providerName`, `providerNpi`, `stediPayerId`, `transaction` - `providerName` sorts case-insensitively. - `status` sorts alphabetically by status name. - `transaction` sorts by the enrolled transaction type name. Enrollments without a transaction type sort last in both directions. - A request that sorts by many properties, or by a very long provider name, can return a validation error instead of the next page. Use fewer sort properties if this happens. Examples: - Sort by `updatedAt` in descending order: `?sortBy=updatedAt:desc` - Sort by `statusLastUpdatedAt` in ascending order: `?sortBy=statusLastUpdatedAt:asc` - Sort by `updatedAt` and then by `id`: `?sortBy=updatedAt:desc&sortBy=id:asc` - Type: `array` ### Responses #### 200 ListEnrollments 200 response **Schema:** `ListEnrollmentsResponseContent` **Properties:** - **`items`** (`array of EnrollmentSummary objects`): Details about the enrollments matching the search criteria. - **`items[].aggregationPreference`** (`any`): Preference for how the payer should group 835 Electronic Remittance Advice (ERA) transactions. Only set this property for 835 ERA enrollments. - If you include this property for a non-ERA enrollment, Stedi rejects the enrollment request with an HTTP `400` error. - If the payer doesn't support the requested aggregation type, Stedi rejects the enrollment request with an HTTP `400` error. - If not set, Stedi automatically selects a default based on the payer's supported aggregation types and the available identifiers for the provider. - Stedi will attempt to enroll with this preference, but it's not guaranteed. Each payer has its own restrictions and behaviors. - **`items[].aggregationPreference (variant 1).taxId`** (`string`) (required): The Taxpayer Identification Number (TIN) the payer should use for aggregation. - **`items[].aggregationPreference (variant 2).npi`** (`string`) (required): The National Provider Identifier (NPI) the payer should use for aggregation. - **`items[].createdAt`** (`string`) (required): The date and time when the enrollment was created within Stedi. - **`items[].documents`** (`array of EnrollmentDocument objects`): Documents associated with this enrollment, such as signed enrollment forms. This list doesn't include deleted documents. Each document object contains metadata such as the document's name, status, and timestamps for creation and last update. - **`items[].documents[].contentType`** (`string`): The content type of the document. - **`items[].documents[].createdAt`** (`string`) (required): The date and time when the document was created. - **`items[].documents[].enrollmentId`** (`string`) (required): The enrollment ID this document is associated with. - **`items[].documents[].id`** (`string`) (required): The unique identifier for the document. - **`items[].documents[].name`** (`string`) (required): The name of the document. - **`items[].documents[].size`** (`number`): The size of the document in bytes. - **`items[].documents[].status`** (`string`) (required): Indicates whether the document file has been successfully uploaded to Stedi. - Allowed values: `PENDING`, `UPLOADED`, `FAILED`, `DELETED` - **`items[].documents[].taskId`** (`string`): The task ID associated with this document, if it was created or processed as part of a task. - **`items[].documents[].updatedAt`** (`string`) (required): The date and time when the document was last updated. - **`items[].history`** (`array of EnrollmentHistoryEntry objects`): The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. - **`items[].history[].changedAt`** (`string`) (required): The date and time when this change occurred. - **`items[].history[].changedBy`** (`string`) (required): The source or system that triggered this change. - **`items[].history[].newStatus`** (`string`) (required): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`items[].history[].previousStatus`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`items[].history[].type`** (`string`) (required): The type of change recorded in the enrollment history. - Allowed values: `STATUS_CHANGE` - **`items[].id`** (`string`) (required): The Stedi-assigned identifier for the enrollment. - **`items[].importId`** (`string`): The import ID associated with the enrollment if it was created through a CSV bulk import (`source` is set to `IMPORT`). This property is only present for enrollments created through the CSV import process. - **`items[].lastEraReceivedAt`** (`string`): The timestamp of the most recent 835 ERA (Electronic Remittance Advice) Stedi received for this enrollment, based on the enrollment's payer ID, provider NPI, and provider tax ID. Stedi automatically updates this property for each new ERA. - This property is only returned for ERA enrollments in `LIVE` status with at least one matching ERA from the payer. - If this timestamp doesn't match your expected timeline for ERA processing, there may be an upstream issue. Contact Stedi support for assistance. - **`items[].payer`** (`object`) (required): Output structure containing payer information in enrollment responses. - **`items[].payer.name`** (`string`): The payer's name, such as `Cigna` or `UnitedHealthcare`. - **`items[].payer.stediPayerId`** (`string`) (required): The unique Stedi assigned identifier for the payer. - **`items[].payer.submittedPayerIdOrAlias`** (`string`): The payer ID or alias used when creating the enrollment request. For example, `62308` and `CIGNA` are both supported for Cigna. You can find a list of all supported payer IDs and aliases in the [Payer Network](https://www.stedi.com/healthcare/network). - **`items[].provider`** (`object`) (required): Complete provider information including both read-only and mutable fields. - **`items[].provider.id`** (`string`) (required): The Stedi-assigned identifier for the provider. The [Create Provider](https://www.stedi.com/docs/api-reference/healthcare/post-enrollment-create-provider) endpoint returns this as the `id` property. - **`items[].provider.name`** (`string`) (required): The provider's name, such as `Example Dental Associates, LLC`. - **`items[].provider.npi`** (`string`) (required): The provider's National Provider Identifier (NPI). This is a 10-digit number assigned by the Centers for Medicare & Medicaid Services (CMS) to healthcare providers in the United States. It is used to identify providers in healthcare transactions. - **`items[].provider.taxId`** (`string`) (required): The provider's tax identification number (SSN or EIN). This is used to identify the provider for tax and administrative purposes. - **`items[].provider.taxIdType`** (`string`) (required): The type of tax identification number. This indicates whether the tax ID is a Social Security Number (SSN) or Employer Identification Number (EIN). - **`items[].reason`** (`string`): Reasons why the enrollment request is still in `PROVISIONING` status, may take additional time to process, or was rejected by the payer. Only Stedi can set or update this property. - **`items[].requestedEffectiveDate`** (`string`): The requested effective date for the enrollment in YYYYMMDD format. This is the date the submitter would like the enrollment to take effect with the payer. If not provided during submission, Stedi defaults to the enrollment's submission date. Not all payers support requested effective dates. Stedi can't guarantee that the enrollment will be effective with the payer on this exact date. - **`items[].source`** (`string`) (required): The source of the enrollment. - Allowed values: `API`, `UI`, `IMPORT`, `AUTO_ENROLLMENT`, `AUTOMATED_TASK` - **`items[].status`** (`string`) (required): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`items[].statusLastUpdatedAt`** (`string`) (required): The date and time when the enrollment status was last updated. This timestamp is used to track enrollment processing durations and enables filtering to identify recently changed enrollments. It automatically updates whenever an enrollment's status changes but remains unchanged during other updates. - **`items[].submittedAt`** (`string`): The date and time when the enrollment was submitted. If the enrollment is in draft status, `submittedAt` is not present. When the enrollment transitions from draft to submitted, `submittedAt` will be updated to the submission time. If the enrollment was created and submitted immediately, `submittedAt` will be equal or close to `createdAt`. - **`items[].tasks`** (`array of Task objects`): Tasks associated with this enrollment, such as reminders or follow-ups. Text values for the `BANK_ACCOUNT_NUMBER` and `BANK_ROUTING_NUMBER` task fields show at most their last four characters. Every other character is replaced with `*`. - **`items[].tasks[].completedAt`** (`string`): The timestamp when the task was completed. - **`items[].tasks[].definition`** (`any`) (required): A discriminated union of task definitions. Supports multiple task types with future extensibility. - **`items[].tasks[].definition (variant 1).manualTask`** (`object`) (required): A task assigned to a responsible party that requires them to collect and submit a defined set of fields. The task is completed by supplying a `ManualTaskResponse` whose values satisfy the declared `fields`. - **`items[].tasks[].definition (variant 1).manualTask.fields`** (`array of ManualTaskField objects`) (required): Fields required to complete the task. Each entry defines the key, human-readable label, optional description, and type for values in the response. Can be empty for instruction-only tasks. - **`items[].tasks[].definition (variant 1).manualTask.fields[].description`** (`string`): Additional context explaining what to provide in the response. For example, details about what supporting documentation (such as the provider's W-9 form) is required. - **`items[].tasks[].definition (variant 1).manualTask.fields[].fieldType`** (`string`) (required): The accepted field types for a manual task. - Allowed values: `TEXT`, `DOCUMENT` - **`items[].tasks[].definition (variant 1).manualTask.fields[].key`** (`string`) (required): A unique identifier for this field within the task, such as `ENROLLMENT_FORM`. - **`items[].tasks[].definition (variant 1).manualTask.fields[].label`** (`string`) (required): Human-readable label for this field, such as `Provider NPI` or `Tax ID`. - **`items[].tasks[].definition (variant 1).manualTask.instructions`** (`string`) (required): Instructions for completing the task. - **`items[].tasks[].definition (variant 1).manualTask.links`** (`array of TaskLink objects`): Links to help complete the task. This can include payer portals, reference documentation, or document download links for Stedi-provided template PDFs. - **`items[].tasks[].definition (variant 1).manualTask.links[].label`** (`string`) (required): Descriptive label for the URL, such as `Provider Portal` or `W-9 Template`. - **`items[].tasks[].definition (variant 1).manualTask.links[].url`** (`string`) (required): The URL for the resource. - **`items[].tasks[].id`** (`string`) (required): The unique, Stedi-assigned identifier for the task. - **`items[].tasks[].isComplete`** (`boolean`) (required): Whether the task has been marked as complete through either the API or the Stedi portal. - **`items[].tasks[].rank`** (`number`) (required): The rank order of this task. Tasks with lower numbers must be completed first. For example, a task with rank `1` must be completed before a task with rank `2`. - **`items[].tasks[].responseData`** (`any`): A discriminated union of task response data. Contains structured data collected when completing specific task types. - **`items[].tasks[].responseData (variant 1).manualTask`** (`object`) (required): Values provided when updating or completing a manual task. Visit [Manage enrollment tasks](https://www.stedi.com/docs/healthcare/transaction-enrollment-tasks-documents#api) for details. - **`items[].tasks[].responseData (variant 1).manualTask.values`** (`array of ManualTaskResponseKeyValue objects`) (required): Values for fields in the task definition. Each value's `key` must have a corresponding field `key`. When updating a task without completing it, you can submit a subset of fields; the supplied values are merged into any previously saved values. Completing a task (`completed: true`) requires a value for every field. - **`items[].tasks[].responseData (variant 1).manualTask.values[].key`** (`string`) (required): Identifier that matches a field `key` in the task definition. - **`items[].tasks[].responseData (variant 1).manualTask.values[].value`** (`any`) (required): The value supplied for a `ManualTaskField`. The variant used must match the field's declared `FieldType`. Supply multiple entries with distinct keys to capture multiple documents or values. - **`items[].tasks[].responseData (variant 1).manualTask.values[].value (variant 1).text`** (`string`) (required): Free-form text when the `fieldType` is `TEXT`. - **`items[].tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document`** (`object`) (required): A reference to a document uploaded to enrollment, supplied as the `document` variant of a `ManualTaskResponseValue`. - **`items[].tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document.documentId`** (`string`) (required): The `documentId` returned for a file uploaded through the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. - **`items[].tasks[].responsibleParty`** (`string`) (required): The party responsible for completing a task. - Allowed values: `PROVIDER`, `STEDI` - **`items[].transactions`** (`any`) (required): Specifies which transaction types are included in the enrollment. - **`items[].transactions (variant 1).eligibilityCheck`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 1).eligibilityCheck.enroll`** (`boolean`) (required) - **`items[].transactions (variant 2).claimStatus`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 2).claimStatus.enroll`** (`boolean`) (required) - **`items[].transactions (variant 3).professionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 3).professionalClaimSubmission.enroll`** (`boolean`) (required) - **`items[].transactions (variant 4).institutionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 4).institutionalClaimSubmission.enroll`** (`boolean`) (required) - **`items[].transactions (variant 5).dentalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 5).dentalClaimSubmission.enroll`** (`boolean`) (required) - **`items[].transactions (variant 6).claimPayment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 6).claimPayment.enroll`** (`boolean`) (required) - **`items[].transactions (variant 7).solicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 7).solicitedClaimAttachment.enroll`** (`boolean`) (required) - **`items[].transactions (variant 8).unsolicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`items[].transactions (variant 8).unsolicitedClaimAttachment.enroll`** (`boolean`) (required) - **`items[].updatedAt`** (`string`) (required): The date and time when the enrollment was updated. - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. - **`totalCount`** (`number`): The total count of enrollments matching the filter criteria, regardless of pagination. **Example:** ```json { "items": [ { "aggregationPreference": { "taxId": "123456789" }, "createdAt": "2025-04-01T12:00:00Z", "documents": [ { "createdAt": "2025-04-01T12:00:00Z", "enrollmentId": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "id": "dc6665a5-7b97-4agh-8c74-a00a336c2989", "name": "pdf-agreement.pdf", "status": "UPLOADED", "updatedAt": "2025-04-02T12:00:00Z" } ], "history": [ { "changedAt": "2025-04-15T09:00:00Z", "changedBy": "user@example.com", "newStatus": "DRAFT", "type": "STATUS_CHANGE" }, { "changedAt": "2025-04-15T09:05:00Z", "changedBy": "user@example.com", "newStatus": "STEDI_ACTION_REQUIRED", "previousStatus": "DRAFT", "type": "STATUS_CHANGE" }, { "changedAt": "2025-04-20T14:30:00Z", "changedBy": "system", "newStatus": "PROVIDER_ACTION_REQUIRED", "previousStatus": "STEDI_ACTION_REQUIRED", "type": "STATUS_CHANGE" }, { "changedAt": "2025-05-02T12:00:00Z", "changedBy": "system", "newStatus": "PROVISIONING", "previousStatus": "PROVIDER_ACTION_REQUIRED", "type": "STATUS_CHANGE" }, { "changedAt": "2025-05-10T15:30:00Z", "changedBy": "system", "newStatus": "LIVE", "previousStatus": "PROVISIONING", "type": "STATUS_CHANGE" } ], "id": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "lastEraReceivedAt": "2025-05-02T12:00:00Z", "payer": { "name": "UnitedHealthcare", "stediPayerId": "KMQTZ", "submittedPayerIdOrAlias": "87726" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998", "name": "Test Medical Provider", "npi": "1234567890", "taxId": "123456789", "taxIdType": "EIN" }, "requestedEffectiveDate": "20250415", "source": "API", "status": "LIVE", "statusLastUpdatedAt": "2025-05-01T12:00:00Z", "tasks": [ { "definition": { "manualTask": { "fields": [], "instructions": "Visit the payer portal to complete your enrollment setup.", "links": [ { "label": "Payer Portal", "url": "https://example.com/portal" } ] } }, "id": "ac6665a5-7b97-4agh-8c74-a00a336c2989", "isComplete": true, "rank": 0, "responsibleParty": "PROVIDER" } ], "transactions": { "claimPayment": { "enroll": true } }, "updatedAt": "2025-05-01T12:00:00Z" }, { "createdAt": "2025-04-20T08:15:00Z", "documents": [ { "createdAt": "2026-11-08T12:00:00Z", "enrollmentId": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "id": "dc6665a5-7b97-4agh-8c74-a00a336c2989", "name": "pdf-agreement.pdf", "status": "UPLOADED", "updatedAt": "2026-11-08T12:05:00Z" } ], "history": [ { "changedAt": "2026-11-07T05:31:56Z", "changedBy": "user@example.com", "newStatus": "DRAFT", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-07T05:31:56Z", "changedBy": "user@example.com", "newStatus": "STEDI_ACTION_REQUIRED", "previousStatus": "DRAFT", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-07T06:15:22Z", "changedBy": "system", "newStatus": "PROVIDER_ACTION_REQUIRED", "previousStatus": "STEDI_ACTION_REQUIRED", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-08T06:15:22Z", "changedBy": "system", "newStatus": "STEDI_ACTION_REQUIRED", "previousStatus": "PROVIDER_ACTION_REQUIRED", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-10T06:15:22Z", "changedBy": "system", "newStatus": "PROVIDER_ACTION_REQUIRED", "previousStatus": "STEDI_ACTION_REQUIRED", "type": "STATUS_CHANGE" } ], "id": "e9a8b7c6-d5f4-3e2d-1c0b-a9876543210f", "payer": { "name": "Aetna", "stediPayerId": "AETNA", "submittedPayerIdOrAlias": "60054" }, "provider": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "Test Medical Provider", "npi": "9876543210", "taxId": "987654321", "taxIdType": "EIN" }, "reason": "Waiting for provider action", "requestedEffectiveDate": "20250801", "source": "API", "status": "PROVIDER_ACTION_REQUIRED", "statusLastUpdatedAt": "2025-04-22T14:45:00Z", "submittedAt": "2025-04-20T08:20:00Z", "tasks": [ { "definition": { "manualTask": { "fields": [], "instructions": "Log in to your Authority's portal and request clearinghouse access for Stedi." } }, "id": "f8e7d6c5-b4a3-9281-7654-321098765432", "isComplete": false, "rank": 1, "responsibleParty": "PROVIDER" }, { "completedAt": "2026-11-08T06:14:22Z", "definition": { "manualTask": { "fields": [ { "description": "Your filled-in and signed enrollment form, as a PDF", "fieldType": "DOCUMENT", "key": "ENROLLMENT_FORM", "label": "Signed PDF" } ], "instructions": "Download the enrollment form, sign it, and upload the completed PDF.", "links": [ { "label": "Enrollment Form", "url": "https://enrollments.us.stedi.com/2024-09-01/documents/019375d0-9876-7890-abcd-567890fedcba/download" } ] } }, "id": "019ce833-b234-75f1-9599-0f14ba643709", "isComplete": true, "rank": 0, "responseData": { "manualTask": { "values": [ { "key": "ENROLLMENT_FORM", "value": { "document": { "documentId": "dc6665a5-7b97-4af9-8c74-a00a336c2989" } } } ] } }, "responsibleParty": "PROVIDER" } ], "transactions": { "eligibilityCheck": { "enroll": true } }, "updatedAt": "2025-04-25T10:30:00Z" } ], "nextPageToken": "945ff6de213d3ef481d028065d4c12fb996a166a3a90ef98564318decfae50ce4b36d74b7e9d9bafa6e1d169", "totalCount": 42 } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # List Providers Source: https://www.stedi.com/docs/healthcare/api-reference/get-enrollment-list-providers This endpoint retrieves all of the provider records in your Stedi account. You can filter the results by the provider's name, NPI, or tax ID. This endpoint returns only the provider record. It doesn't include information about associated [transaction enrollments](/healthcare/transaction-enrollment). To retrieve enrollment information, use the [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoint. ## API Specification Lists providers with optional filtering and pagination. **Endpoint:** `GET /providers` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`pageSize`** (query): The maximum number of elements to return in a page. If not specified, the default is 100. - Type: `number` - **`pageToken`** (query): The `nextPageToken` value from a previous response. You can use this to get the next page of results. If not set, Stedi returns the first page of results. - Type: `string` - **`filter`** (query): Filter for providers with properties matching a query string. You can provide all or part of a provider name, NPI, or tax ID. The search is case-insensitive and supports fuzzy matching. For example, providing `?filter=OS` returns providers with names containing `os` (such as `Joseph`). - Type: `string` - **`providerNpis`** (query): Filter for providers with NPIs matching any value in this list. - Type: `array` - **`providerTaxIds`** (query): Filter for providers with tax IDs matching any value in this list. - Type: `array` - **`sortBy`** (query): Sort the results by up to three properties. By default, Stedi sorts results by creation time in descending order. Supply a query string with each property appended using `&`. Each property must be provided in a `property:direction` format, where `property` is the name of the property to sort by and `direction` is the sort direction, either `asc` (ascending) or `desc` (descending). - Stedi adds the provider `id` as the final sort criterion to ensure deterministic results. - When you provide multiple properties, Stedi sorts by their order in the query string. **Supported properties:** `name`, `npi`, `taxId` - `name` sorts case-insensitively. - Providers without a tax ID sort last in both directions. - Sorting by a very long `name` can return a validation error instead of the next page. Examples: - Sort by `name` in ascending order: `?sortBy=name:asc` - Sort by `taxId` and then by `npi`: `?sortBy=taxId:asc&sortBy=npi:asc` - Type: `array` ### Responses #### 200 ListProviders 200 response **Schema:** `ListProvidersResponseContent` **Properties:** - **`items`** (`array of ProviderSummary objects`): Details about every provider your organization has created within Stedi. - **`items[].createdAt`** (`string`) (required): The date and time Stedi created the provider record. - **`items[].id`** (`string`) (required): A unique identifier Stedi assigns to this provider internally. - **`items[].name`** (`string`) (required): The provider's business name. This is typically the provider's practice name, such as `Dental Associates, LLC`, but it can also be the provider's first and last name. - **`items[].npi`** (`string`) (required): The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search). - **`items[].taxId`** (`string`): The provider's tax ID, as specified by `taxIdType`. This identifier is formatted without any separators, such as dashes or spaces. For example 111-22-3333 is represented as `111223333`. - **`items[].taxIdType`** (`string`): The type of tax identification number. Organizations (Type 2 NPIs) must use `EIN`, while individual providers (Type 1 NPIs) can use either `EIN` or `SSN`. - Allowed values: `EIN`, `SSN` - **`items[].updatedAt`** (`string`) (required): The date and time Stedi last updated the provider record. - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. **Example:** ```json { "items": [ { "createdAt": "2024-11-18T17:39:52.406Z", "id": "10334e76-f073-4b5d-8984-81d8e5107857", "name": "BDQ Dental Inc", "npi": "1999999992", "taxId": "555123456", "taxIdType": "EIN", "updatedAt": "2024-12-02T09:14:31.882Z" }, { "createdAt": "2024-10-04T11:22:08.153Z", "id": "10234e76-f067-4b5d-8984-81d8e5107123", "name": "Example Medical Associates", "npi": "1999999984", "taxId": "100100111", "taxIdType": "EIN", "updatedAt": "2024-10-04T11:22:08.153Z" } ] } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Retrieve Provider Source: https://www.stedi.com/docs/healthcare/api-reference/get-enrollment-provider This endpoint allows you to retrieve details for the specified provider. ## API Specification Retrieves a provider record by its ID. This operation returns the complete provider details including contact information. **Endpoint:** `GET /providers/{providerId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`providerId`** (path) (required): The unique ID Stedi assigned to the provider when it was created in the system. - Type: `string` ### Responses #### 200 GetProvider 200 response **Schema:** `GetProviderResponseContent` **Properties:** - **`contacts`** (`array of ProviderContact objects`): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - **`contacts[].city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`contacts[].country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`contacts[].email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`contacts[].firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`contacts[].lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`contacts[].organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`contacts[].phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`contacts[].state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`contacts[].streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`contacts[].streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`contacts[].zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`createdAt`** (`string`): The date and time Stedi created the provider record. - **`id`** (`string`) (required): A unique identifier Stedi assigns to this provider. - **`name`** (`string`) (required): The provider's business name. This is typically the provider's practice name, such as `Dental Associates, LLC`, but it can also be the provider's first and last name. - **`npi`** (`string`) (required): The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search). This is a 10-digit number that is unique to the provider. - **`taxId`** (`string`): The provider's tax ID, as specified by `taxIdType`. This identifier is formatted without any separators, such as dashes or spaces. For example 111-22-3333 is represented as `111223333`. - **`taxIdType`** (`string`): The type of tax identification number. Organizations (Type 2 NPIs) must use `EIN`, while individual providers (Type 1 NPIs) can use either `EIN` or `SSN`. - Allowed values: `EIN`, `SSN` - **`updatedAt`** (`string`): The date and time Stedi last updated the provider record. **Example:** ```json { "contacts": [ { "city": "Chevy Chase", "country": "US", "email": "bob@fortdental.center", "firstName": "Bob", "lastName": "Dentist", "organizationName": "", "phone": "5551234567", "state": "MD", "streetAddress1": "123 Some Str", "zipCode": "20814" }, { "city": "Chevy Chase", "country": "US", "email": "tom@fortdental.center", "firstName": "Tom", "lastName": "Dentist", "organizationName": "", "phone": "5551234568", "state": "MD", "streetAddress1": "123 Some Str", "zipCode": "20814" } ], "createdAt": "2024-11-18T17:39:52.406Z", "id": "10334e76-f073-4b5d-8984-81d8e5107857", "name": "BDQ Dental Inc", "npi": "1999999992", "taxId": "555123456", "taxIdType": "EIN", "updatedAt": "2024-11-18T17:39:52.406Z" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Retrieve Enrollment Source: https://www.stedi.com/docs/healthcare/api-reference/get-enrollment This endpoint retrieves details for the specified [transaction enrollment](/healthcare/transaction-enrollment). ## API Specification Retrieves an enrollment request by its ID. This operation returns the complete enrollment details including provider and payer information. **Endpoint:** `GET /enrollments/{enrollmentId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`enrollmentId`** (path) (required): The Stedi-assigned identifier for the enrollment you want to retrieve. - Type: `string` ### Responses #### 200 GetEnrollment 200 response **Schema:** `GetEnrollmentResponseContent` **Properties:** - **`aggregationPreference`** (`any`): Preference for how the payer should group 835 Electronic Remittance Advice (ERA) transactions. Only set this property for 835 ERA enrollments. - If you include this property for a non-ERA enrollment, Stedi rejects the enrollment request with an HTTP `400` error. - If the payer doesn't support the requested aggregation type, Stedi rejects the enrollment request with an HTTP `400` error. - If not set, Stedi automatically selects a default based on the payer's supported aggregation types and the available identifiers for the provider. - Stedi will attempt to enroll with this preference, but it's not guaranteed. Each payer has its own restrictions and behaviors. - **`aggregationPreference (variant 1).taxId`** (`string`) (required): The Taxpayer Identification Number (TIN) the payer should use for aggregation. - **`aggregationPreference (variant 2).npi`** (`string`) (required): The National Provider Identifier (NPI) the payer should use for aggregation. - **`createdAt`** (`string`) (required): The date and time when the enrollment was created within Stedi. - **`documents`** (`array of EnrollmentDocument objects`): Documents associated with this enrollment, such as signed enrollment forms. This list doesn't include deleted documents. Each document object contains metadata such as the document's name, status, and timestamps for creation and last update. - **`documents[].contentType`** (`string`): The content type of the document. - **`documents[].createdAt`** (`string`) (required): The date and time when the document was created. - **`documents[].enrollmentId`** (`string`) (required): The enrollment ID this document is associated with. - **`documents[].id`** (`string`) (required): The unique identifier for the document. - **`documents[].name`** (`string`) (required): The name of the document. - **`documents[].size`** (`number`): The size of the document in bytes. - **`documents[].status`** (`string`) (required): Indicates whether the document file has been successfully uploaded to Stedi. - Allowed values: `PENDING`, `UPLOADED`, `FAILED`, `DELETED` - **`documents[].taskId`** (`string`): The task ID associated with this document, if it was created or processed as part of a task. - **`documents[].updatedAt`** (`string`) (required): The date and time when the document was last updated. - **`history`** (`array of EnrollmentHistoryEntry objects`): The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. - **`history[].changedAt`** (`string`) (required): The date and time when this change occurred. - **`history[].changedBy`** (`string`) (required): The source or system that triggered this change. - **`history[].newStatus`** (`string`) (required): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`history[].previousStatus`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`history[].type`** (`string`) (required): The type of change recorded in the enrollment history. - Allowed values: `STATUS_CHANGE` - **`id`** (`string`) (required): The Stedi-assigned identifier for the enrollment request. - **`lastEraReceivedAt`** (`string`): The timestamp of the most recent 835 ERA (Electronic Remittance Advice) Stedi received for this enrollment, based on the enrollment's payer ID, provider NPI, and provider tax ID. Stedi automatically updates this property for each new ERA. - This property is only returned for ERA enrollments in `LIVE` status with at least one matching ERA from the payer. - If this timestamp doesn't match your expected timeline for ERA processing, there may be an upstream issue. Contact Stedi support for assistance. - **`payer`** (`object`) (required): Output structure containing payer information in enrollment responses. - **`payer.name`** (`string`): The payer's name, such as `Cigna` or `UnitedHealthcare`. - **`payer.stediPayerId`** (`string`) (required): The unique Stedi assigned identifier for the payer. - **`payer.submittedPayerIdOrAlias`** (`string`): The payer ID or alias used when creating the enrollment request. For example, `62308` and `CIGNA` are both supported for Cigna. You can find a list of all supported payer IDs and aliases in the [Payer Network](https://www.stedi.com/healthcare/network). - **`primaryContact`** (`object`) (required): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - Either `organizationName` _or_ `firstName` and `lastName` are required. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - If you're submitting enrollment requests on a provider's behalf, you may want to set the phone number and email to your own contact details. Do this when you want the payer to contact you about the enrollment status instead of the provider directly. - These contacts are for convenience only. You can specify different contacts on enrollment requests as needed. - **`primaryContact.city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`primaryContact.country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`primaryContact.email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`primaryContact.firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`primaryContact.lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`primaryContact.organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`primaryContact.phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`primaryContact.state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`primaryContact.streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`primaryContact.streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`primaryContact.zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`provider`** (`object`) (required): Complete provider information including both read-only and mutable fields. - **`provider.id`** (`string`) (required): The Stedi-assigned identifier for the provider. The [Create Provider](https://www.stedi.com/docs/api-reference/healthcare/post-enrollment-create-provider) endpoint returns this as the `id` property. - **`provider.name`** (`string`) (required): The provider's name, such as `Example Dental Associates, LLC`. - **`provider.npi`** (`string`) (required): The provider's National Provider Identifier (NPI). This is a 10-digit number assigned by the Centers for Medicare & Medicaid Services (CMS) to healthcare providers in the United States. It is used to identify providers in healthcare transactions. - **`provider.taxId`** (`string`) (required): The provider's tax identification number (SSN or EIN). This is used to identify the provider for tax and administrative purposes. - **`provider.taxIdType`** (`string`) (required): The type of tax identification number. This indicates whether the tax ID is a Social Security Number (SSN) or Employer Identification Number (EIN). - **`providerTransactionAccessNumber`** (`string`): This property is required for payers that require a Provider Transaction Access Number (PTAN). The PTAN is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`reason`** (`string`): Reasons why the enrollment request is still in `PROVISIONING` status, may take additional time to process, or was rejected by the payer. Only Stedi can set or update this property. - **`requestedEffectiveDate`** (`string`): The requested effective date for the enrollment in YYYYMMDD format. This is the date the submitter would like the enrollment to take effect with the payer. If not provided during submission, Stedi defaults to the enrollment's submission date. Not all payers support requested effective dates. Stedi can't guarantee that the enrollment will be effective with the payer on this exact date. - **`source`** (`string`): The source of the enrollment. - Allowed values: `API`, `UI`, `IMPORT`, `AUTO_ENROLLMENT`, `AUTOMATED_TASK` - **`status`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`statusLastUpdatedAt`** (`string`) (required): The date and time when the enrollment status was last updated. This timestamp is used to track enrollment processing durations and enables filtering to identify recently changed enrollments. It automatically updates whenever an enrollment's status changes but remains unchanged during other updates. - **`submittedAt`** (`string`): The date and time when the enrollment was submitted. If the enrollment is in `DRAFT` status, `submittedAt` is not present. When the enrollment transitions from draft to `STEDI_ACTION_REQUIRED`, `submittedAt` is updated to the submission time. If the enrollment was created and submitted immediately, the `submittedAt` time will be equal or close to the `createdAt` time. - **`tasks`** (`array of Task objects`): Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition. Text values for the `BANK_ACCOUNT_NUMBER` and `BANK_ROUTING_NUMBER` task fields show at most their last four characters. Every other character is replaced with `*`. - **`tasks[].completedAt`** (`string`): The timestamp when the task was completed. - **`tasks[].definition`** (`any`) (required): A discriminated union of task definitions. Supports multiple task types with future extensibility. - **`tasks[].definition (variant 1).manualTask`** (`object`) (required): A task assigned to a responsible party that requires them to collect and submit a defined set of fields. The task is completed by supplying a `ManualTaskResponse` whose values satisfy the declared `fields`. - **`tasks[].definition (variant 1).manualTask.fields`** (`array of ManualTaskField objects`) (required): Fields required to complete the task. Each entry defines the key, human-readable label, optional description, and type for values in the response. Can be empty for instruction-only tasks. - **`tasks[].definition (variant 1).manualTask.fields[].description`** (`string`): Additional context explaining what to provide in the response. For example, details about what supporting documentation (such as the provider's W-9 form) is required. - **`tasks[].definition (variant 1).manualTask.fields[].fieldType`** (`string`) (required): The accepted field types for a manual task. - Allowed values: `TEXT`, `DOCUMENT` - **`tasks[].definition (variant 1).manualTask.fields[].key`** (`string`) (required): A unique identifier for this field within the task, such as `ENROLLMENT_FORM`. - **`tasks[].definition (variant 1).manualTask.fields[].label`** (`string`) (required): Human-readable label for this field, such as `Provider NPI` or `Tax ID`. - **`tasks[].definition (variant 1).manualTask.instructions`** (`string`) (required): Instructions for completing the task. - **`tasks[].definition (variant 1).manualTask.links`** (`array of TaskLink objects`): Links to help complete the task. This can include payer portals, reference documentation, or document download links for Stedi-provided template PDFs. - **`tasks[].definition (variant 1).manualTask.links[].label`** (`string`) (required): Descriptive label for the URL, such as `Provider Portal` or `W-9 Template`. - **`tasks[].definition (variant 1).manualTask.links[].url`** (`string`) (required): The URL for the resource. - **`tasks[].id`** (`string`) (required): The unique, Stedi-assigned identifier for the task. - **`tasks[].isComplete`** (`boolean`) (required): Whether the task has been marked as complete through either the API or the Stedi portal. - **`tasks[].rank`** (`number`) (required): The rank order of this task. Tasks with lower numbers must be completed first. For example, a task with rank `1` must be completed before a task with rank `2`. - **`tasks[].responseData`** (`any`): A discriminated union of task response data. Contains structured data collected when completing specific task types. - **`tasks[].responseData (variant 1).manualTask`** (`object`) (required): Values provided when updating or completing a manual task. Visit [Manage enrollment tasks](https://www.stedi.com/docs/healthcare/transaction-enrollment-tasks-documents#api) for details. - **`tasks[].responseData (variant 1).manualTask.values`** (`array of ManualTaskResponseKeyValue objects`) (required): Values for fields in the task definition. Each value's `key` must have a corresponding field `key`. When updating a task without completing it, you can submit a subset of fields; the supplied values are merged into any previously saved values. Completing a task (`completed: true`) requires a value for every field. - **`tasks[].responseData (variant 1).manualTask.values[].key`** (`string`) (required): Identifier that matches a field `key` in the task definition. - **`tasks[].responseData (variant 1).manualTask.values[].value`** (`any`) (required): The value supplied for a `ManualTaskField`. The variant used must match the field's declared `FieldType`. Supply multiple entries with distinct keys to capture multiple documents or values. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 1).text`** (`string`) (required): Free-form text when the `fieldType` is `TEXT`. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document`** (`object`) (required): A reference to a document uploaded to enrollment, supplied as the `document` variant of a `ManualTaskResponseValue`. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document.documentId`** (`string`) (required): The `documentId` returned for a file uploaded through the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. - **`tasks[].responsibleParty`** (`string`) (required): The party responsible for completing a task. - Allowed values: `PROVIDER`, `STEDI` - **`transactions`** (`any`) (required): Specifies which transaction types are included in the enrollment. - **`transactions (variant 1).eligibilityCheck`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 1).eligibilityCheck.enroll`** (`boolean`) (required) - **`transactions (variant 2).claimStatus`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 2).claimStatus.enroll`** (`boolean`) (required) - **`transactions (variant 3).professionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 3).professionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 4).institutionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 4).institutionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 5).dentalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 5).dentalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 6).claimPayment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 6).claimPayment.enroll`** (`boolean`) (required) - **`transactions (variant 7).solicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 7).solicitedClaimAttachment.enroll`** (`boolean`) (required) - **`transactions (variant 8).unsolicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 8).unsolicitedClaimAttachment.enroll`** (`boolean`) (required) - **`updatedAt`** (`string`) (required): The date and time when the enrollment was updated. - **`userEmail`** (`string`) (required): The email address where Stedi should send updates about the enrollment. We'll use it to notify you when there are next steps and send updates on the enrollment's status. - This email address can be different from the `primaryContact.email` where the payer sends communications about the enrollment. - For [automatic enrollment requests](https://www.stedi.com/docs/healthcare/create-manage-transaction-enrollments#automatic-enrollment-requests), Stedi sets this to the oldest account member with the Admin role. **Example:** ```json { "createdAt": "2023-11-07T05:31:56Z", "documents": [ { "createdAt": "2026-11-08T12:00:00Z", "enrollmentId": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "id": "dc6665a5-7b97-4agh-8c74-a00a336c2989", "name": "pdf-agreement.pdf", "status": "UPLOADED", "updatedAt": "2026-11-08T12:05:00Z" } ], "history": [ { "changedAt": "2026-11-07T05:31:56Z", "changedBy": "user@example.com", "newStatus": "DRAFT", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-07T05:31:56Z", "changedBy": "user@example.com", "newStatus": "STEDI_ACTION_REQUIRED", "previousStatus": "DRAFT", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-07T06:15:22Z", "changedBy": "system", "newStatus": "PROVIDER_ACTION_REQUIRED", "previousStatus": "STEDI_ACTION_REQUIRED", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-08T06:15:22Z", "changedBy": "system", "newStatus": "STEDI_ACTION_REQUIRED", "previousStatus": "PROVIDER_ACTION_REQUIRED", "type": "STATUS_CHANGE" }, { "changedAt": "2026-11-10T06:15:22Z", "changedBy": "system", "newStatus": "PROVIDER_ACTION_REQUIRED", "previousStatus": "STEDI_ACTION_REQUIRED", "type": "STATUS_CHANGE" } ], "id": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "payer": { "name": "UnitedHealthcare", "stediPayerId": "KMQTZ", "submittedPayerIdOrAlias": "87726" }, "primaryContact": { "city": "A City", "country": "US", "email": "test@example.com", "firstName": "John", "lastName": "Doe", "phone": "5551234567", "state": "MD", "streetAddress1": "123 Some Str.", "zipCode": "20814" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998", "name": "Test Medical Provider", "npi": "1234567890", "taxId": "123456789", "taxIdType": "EIN" }, "requestedEffectiveDate": "20231107", "source": "API", "status": "PROVIDER_ACTION_REQUIRED", "statusLastUpdatedAt": "2023-11-07T06:15:22Z", "submittedAt": "2023-11-07T05:31:56Z", "tasks": [ { "definition": { "manualTask": { "fields": [], "instructions": "Log in to your Authority's portal and request clearinghouse access for Stedi." } }, "id": "ac6665a5-7b97-4agh-8c74-a00a336c2989", "isComplete": false, "rank": 1, "responsibleParty": "PROVIDER" }, { "completedAt": "2026-06-01T12:00:00Z", "definition": { "manualTask": { "fields": [ { "description": "Your filled-in and signed enrollment form, as a PDF", "fieldType": "DOCUMENT", "key": "ENROLLMENT_FORM", "label": "Signed PDF" } ], "instructions": "Download the enrollment form, sign it, and upload the completed PDF.", "links": [ { "label": "Enrollment Form", "url": "https://enrollments.us.stedi.com/2024-09-01/documents/019375d0-9876-7890-abcd-567890fedcba/download" } ] } }, "id": "019ce833-b234-75f1-9599-0f14ba643709", "isComplete": true, "rank": 0, "responseData": { "manualTask": { "values": [ { "key": "ENROLLMENT_FORM", "value": { "document": { "documentId": "dc6665a5-7b97-4af9-8c74-a00a336c2989" } } } ] } }, "responsibleParty": "PROVIDER" } ], "transactions": { "professionalClaimSubmission": { "enroll": true } }, "updatedAt": "2023-11-07T05:31:56Z", "userEmail": "test@example.com" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # 835 ERA PDF Source: https://www.stedi.com/docs/healthcare/api-reference/get-era-pdf This endpoint uses an 835 Electronic Remittance Advice (ERA) `transactionId` to retrieve its associated PDF file. Stedi autogenerates a PDF file for each processed 835 ERA. The PDF contains a human-readable version of the ERA, including payment details, adjustments, and explanations for each service line. It resembles the Standard Paper Remittance (SPR) format that the Centers for Medicare and Medicaid Services (CMS) uses for ERA PDFs, regardless of which payer sent the ERA. 1. Call this endpoint with the `transactionId` path parameter set to the 835 ERA's transaction ID. Stedi includes this ID in the transaction processed event for the 835 ERA, which you can receive automatically through Stedi [event destinations](/healthcare/event-destinations-configure). You can also retrieve this ID through the [Poll Transactions](/healthcare/api-reference/get-poll-transactions) endpoint. 2. By default, the endpoint returns the PDF as a base64-encoded string. To receive the unencoded PDF data, include the `Accept: application/pdf` request header. To view the PDF, save the PDF data to a file with a `.pdf` extension. This is a PDF representation of the 835 ERA - it's not the same as an Explanation of Benefits (EOB) that you may receive from the payer. ## API Specification Retrieve the generated PDF of an 835 Electronic Remittance Advice (ERA). **Endpoint:** `GET /electronic-remittance-advice/{transactionId}/pdf` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`transactionId`** (path) (required): A unique identifier for the Electronic Remittance Advice (ERA) within Stedi. This ID is included in the transaction processed event for the ERA, which you can receive automatically through Stedi [webhooks](https://www.stedi.com/docs/healthcare/configure-webhooks). You can also retrieve this ID through the [Poll Transactions endpoint](https://www.stedi.com/docs/healthcare/api-reference/get-poll-transactions). - Type: `string` - **`logo`** (query): If false, the generated PDF will not include the Stedi logo in the footer. The default is true. - Type: `boolean` ### Responses #### 200 GetElectronicRemittanceAdvicePdf 200 response #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Get Event Destination Secret Source: https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-destination-secret This endpoint retrieves the current signing secret for an event destination. You can use this secret to [verify the authenticity of event payloads](/healthcare/event-destinations-message-handling#verify-authenticity-and-receipt-time). 1. Call this endpoint with the destination's ID. Stedi returns this ID in the responses from the [Create Destination](/healthcare/api-reference/post-event-destinations-create-destination) and [List Destinations](/healthcare/api-reference/get-event-destinations-list-destinations) endpoints. 2. The endpoint returns the signing secret for the destination. If you recently rotated the secret, the response also includes the expiration time for the previous secret, allowing you to support both secrets during the transition period. ## API Specification Retrieves the current signing secret for a destination. Use this secret to verify the authenticity of event payloads. **Endpoint:** `GET /destinations/{destinationId}/secret` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`destinationId`** (path) (required): The unique identifier for the destination. You can retrieve destination IDs with the [List Destinations](https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-list-destinations) endpoint. - Type: `string` ### Responses #### 200 GetEventDestinationSecret 200 response **Schema:** `GetEventDestinationSecretResponseContent` **Properties:** - **`previousSecretExpiresAt`** (`string`): Expiration timestamp for the previous secret. Only present when a secret rotation is in progress. - **`signingSecret`** (`string`) (required): The signing secret for verifying event payloads. Visit [verify event signatures](https://www.stedi.com/docs/healthcare/event-destinations-message-handling#verify-authenticity-and-receipt-time) for details. **Example:** ```json { "signingSecret": "whsec_YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=" } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 404 NotFoundException 404 response **Schema:** `NotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # Get Event Destination Source: https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-destination This endpoint retrieves the full details of a specific event destination, including its configuration and current status. 1. Call this endpoint with the destination's ID. Stedi returns this ID in the responses from the [Create Destination](/healthcare/api-reference/post-event-destinations-create-destination) and [List Destinations](/healthcare/api-reference/get-event-destinations-list-destinations) endpoints. 2. The endpoint returns the destination details, including the destination name, URL, subscribed event types, status, and timestamps for creation and last update. ## API Specification Retrieves details for an existing event destination. **Endpoint:** `GET /destinations/{destinationId}` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`destinationId`** (path) (required): The unique identifier for the destination. You can retrieve destination IDs with the [List Destinations](https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-list-destinations) endpoint. - Type: `string` ### Responses #### 200 GetEventDestination 200 response **Schema:** `GetEventDestinationResponseContent` **Properties:** - **`concurrencyLimit`** (`number`): The maximum number of concurrent deliveries for this destination. Contact Stedi to change your account limits. - **`createdAt`** (`string`) (required): Creation timestamp for this destination. - **`description`** (`string`) (required): A description of the destination's purpose, such as "Receives transaction enrollment task notifications." - **`destinationUrl`** (`string`) (required): The URL where Stedi delivers payloads through HTTP `POST`. - **`eventTypes`** (`array of strings`) (required): The event types Stedi sends to this destination. Visit [event types](https://www.stedi.com/docs/healthcare/event-destinations-event-types) for a complete list. - **`id`** (`string`) (required): The unique identifier for the destination. - **`lastDeliveryTime`** (`string`): The timestamp for Stedi's most recent delivery attempt to this destination. Absent when Stedi hasn't yet attempted a delivery. - **`name`** (`string`) (required): A human-readable name for the destination. Stedi displays this name in the portal. - **`status`** (`string`) (required): The destination's current status. Stedi only sends event payloads to `ENABLED` destinations. - Allowed values: `ENABLED`, `DISABLED` - **`updatedAt`** (`string`) (required): Last update timestamp for this destination. **Example:** ```json { "createdAt": "2026-02-01T12:00:00Z", "description": "Receives enrollment notifications", "destinationUrl": "https://example.com/webhooks", "eventTypes": [ "enrollment.activated" ], "id": "dst_550e8400-e29b-41d4-a716-446655440000", "name": "My Destination", "status": "ENABLED", "updatedAt": "2026-02-01T12:00:00Z" } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 404 NotFoundException 404 response **Schema:** `NotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # Get Event Destination Event Source: https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-event This endpoint retrieves the full details of the specified event. You can use it as part of your workflow to [manually process undelivered events](/healthcare/event-destinations-message-handling#process-undelivered-events) as needed. 1. Call this endpoint with the event's ID. This ID returned as the `items[].id` property in the [List Events](/healthcare/api-reference/get-event-destinations-list-events) endpoint response. 2. Stedi returns the event details, including the event type, event status, creation date, and full event payload. ## API Specification Retrieves the details of an existing event by its identifier. **Endpoint:** `GET /events/{eventId}` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`eventId`** (path) (required): The unique identifier for the event, formatted as `evt_{UUID}`. - Type: `string` ### Responses #### 200 GetEventDestinationEvent 200 response **Schema:** `GetEventDestinationEventResponseContent` **Properties:** - **`createdAt`** (`string`) (required): An ISO 8601 timestamp of when the event was created. - **`eventPayload`** (`any`) (required): The event payload, discriminated by object type. Each variant corresponds to a versioned event schema. - **`eventPayload (variant 1).v1Event`** (`object`) (required): A v1 thin event envelope that signals a state change. Consumers fetch current resource state via API using the resource reference. This is the exact payload delivered to webhook destinations. - **`eventPayload (variant 1).v1Event.account`** (`string`) (required): Stedi account identifier (UUID). - **`eventPayload (variant 1).v1Event.created`** (`string`) (required): An ISO 8601 timestamp of when the event was created. - **`eventPayload (variant 1).v1Event.environment`** (`string`) (required): The environment in which an event was produced. - Allowed values: `TEST`, `PRODUCTION` - **`eventPayload (variant 1).v1Event.id`** (`string`): An identifier for the event, formatted as `evt_{UUID}`. - **`eventPayload (variant 1).v1Event.object`** (`string`) (required): Object type discriminator for event payloads. - Allowed values: `v1.event` - **`eventPayload (variant 1).v1Event.relatedResources`** (`array of EventDestinationsEventPayloadResourceRef objects`): Other resources related to the event. Only present when there are related resources. - **`eventPayload (variant 1).v1Event.relatedResources[].id`** (`string`) (required): The resource identifier. - **`eventPayload (variant 1).v1Event.relatedResources[].type`** (`string`) (required): The resource type. Uses dot notation to indicate nested resources. For example, `enrollment.document` indicates a document associated with a transaction enrollment request. - **`eventPayload (variant 1).v1Event.resource`** (`object`) (required): A reference to a resource affected by an event. - **`eventPayload (variant 1).v1Event.resource.id`** (`string`) (required): The resource identifier. - **`eventPayload (variant 1).v1Event.resource.type`** (`string`) (required): The resource type. Uses dot notation to indicate nested resources. For example, `enrollment.document` indicates a document associated with a transaction enrollment request. - **`eventPayload (variant 1).v1Event.type`** (`string`): The event type in dot notation, such as `enrollment.activated`. - **`eventType`** (`string`) (required): The type of event, such as `enrollment.activated`. - **`id`** (`string`) (required): The unique identifier for the event, formatted as `evt_{UUID}`. - **`status`** (`string`) (required): The current status of an event. - Allowed values: `PENDING`, `DELIVERED`, `FAILED` **Example:** ```json { "createdAt": "2026-02-01T12:00:00Z", "eventPayload": { "v1Event": { "account": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "created": "2026-02-01T12:00:00.000Z", "environment": "PRODUCTION", "id": "evt_550e8400-e29b-41d4-a716-446655440000", "object": "v1.event", "resource": { "id": "enr_661f9511-f3ac-52e5-b827-557766551111", "type": "enrollment" }, "type": "enrollment.activated" } }, "eventType": "enrollment.activated", "id": "evt_550e8400-e29b-41d4-a716-446655440000", "status": "DELIVERED" } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 404 NotFoundException 404 response **Schema:** `NotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # List Event Destinations Source: https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-list-destinations This endpoint retrieves all event destinations configured for your Stedi account. You can filter the results by destination status or event type. Each destination in the response includes summary information such as the destination name, URL, subscribed event types, status, and the last delivery time. To retrieve full details for a specific destination, use the [Retrieve Destination](/healthcare/api-reference/get-event-destinations-destination) endpoint. ## API Specification Lists all destinations configured for your account. Results are paginated. **Endpoint:** `GET /destinations` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`pageSize`** (query): Number of items to return per page. - Type: `number` - **`pageToken`** (query): The `nextPageToken` value from a previous response. You can use this to get the next page of results. If not set, Stedi returns the first page of results. - Type: `string` - **`status`** (query): Filter for destinations with a specific status. Stedi only sends event payloads to `ENABLED` destinations. - **`eventType`** (query): Filter results by event type. Visit [event types](https://www.stedi.com/docs/healthcare/event-destinations-event-types) for a complete list. - Type: `string` ### Responses #### 200 ListEventDestinations 200 response **Schema:** `ListEventDestinationsResponseContent` **Properties:** - **`items`** (`array of EventDestinationsDestinationSummary objects`) (required): The list of destination summaries. - **`items[].concurrencyLimit`** (`number`): The maximum number of concurrent deliveries for this destination. Contact Stedi to change your account limits. - **`items[].createdAt`** (`string`) (required): Creation timestamp for this destination. - **`items[].description`** (`string`) (required): A description of the destination's purpose, such as "Receives transaction enrollment task notifications." - **`items[].destinationUrl`** (`string`) (required): The URL where Stedi delivers payloads through HTTP `POST`. - **`items[].eventTypes`** (`array of strings`) (required): The event types Stedi sends to this destination. Visit [event types](https://www.stedi.com/docs/healthcare/event-destinations-event-types) for a complete list. - **`items[].id`** (`string`) (required): The unique identifier for the destination. - **`items[].lastDeliveryTime`** (`string`): The timestamp for Stedi's most recent delivery attempt to this destination. Absent when Stedi hasn't yet attempted a delivery. - **`items[].name`** (`string`) (required): A human-readable name for the destination. Stedi displays this name in the portal. - **`items[].status`** (`string`) (required): The destination's current status. Stedi only sends event payloads to `ENABLED` destinations. - Allowed values: `ENABLED`, `DISABLED` - **`items[].updatedAt`** (`string`) (required): Last update timestamp for this destination. - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. **Example:** ```json { "items": [ { "createdAt": "2026-02-01T12:00:00Z", "description": "Receives enrollment notifications", "destinationUrl": "https://example.com/webhooks", "eventTypes": [ "enrollment.activated" ], "id": "dst_550e8400-e29b-41d4-a716-446655440000", "lastDeliveryTime": "2026-02-01T12:00:01Z", "name": "My Destination", "status": "ENABLED", "updatedAt": "2026-02-01T12:00:00Z" } ] } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # List Event Destination Events Source: https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-list-events This endpoint retrieves a list of events generated within your Stedi account. By default, it returns all events regardless of delivery status for the past 30 days. You can use it to [recover from delivery failures](/healthcare/event-destinations-message-handling#process-undelivered-events) and [check for processing errors](/healthcare/event-destinations-message-handling#check-for-processing-errors). 1. Call this endpoint with one or more query parameters to filter the results. You can filter by event type, delivery status, or created date. 2. Stedi returns the a list of events matching the criteria. You can use the `items[].id` value with the [Retrieve Event](/healthcare/api-reference/get-event-destinations-event) endpoint to retrieve the full payload for each event. ## API Specification Lists all events for your account. Results are paginated. **Endpoint:** `GET /events` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`pageSize`** (query): The maximum number of elements to return in a page. If not specified, the default is 100. - Type: `number` - **`pageToken`** (query): The `nextPageToken` value from a previous response. You can use this to get the next page of results. If not set, Stedi returns the first page of results. - Type: `string` - **`eventId`** (query): Filter results by event ID, such as `evt_019d554b-311b-7813-b491-0a8973762eae`. - Type: `string` - **`status`** (query): Filter results by one or more event statuses. Can be: - `DELIVERED`: Stedi successfully delivered the event to all relevant event destinations. - `PENDING`: Stedi is still trying to deliver the event to one or more event destinations. - `FAILED`: Stedi couldn't deliver the event to at least one event destination and is no longer retrying. - Type: `array` - **`eventType`** (query): Filter results by event type, such as `enrollment.activated`. - Type: `string` - **`created`** (query): Filter results by their `createdAt` timestamp. Each value is in the format `operator:ISO-8601-timestamp`. - The supported operators are `gt` (after), `gte` (at or after), `lt` (before), and `lte` (at or before). For example: Setting this to `lt:2024-02-01T00:00:00Z` filters for events created before the specified timestamp. - Combine multiple values with `&` to specify a date range. For example: `created=gt:2026-01-01T00:00:00Z&created=lt:2026-02-01T00:00:00Z`. - Type: `array` ### Responses #### 200 ListEventDestinationEvents 200 response **Schema:** `ListEventDestinationEventsResponseContent` **Properties:** - **`items`** (`array of EventDestinationsEventSummary objects`) (required): The list of event summaries. - **`items[].createdAt`** (`string`) (required): An ISO 8601 timestamp of when the event was created. - **`items[].eventType`** (`string`) (required): The type of event, such as `enrollment.activated`. - **`items[].id`** (`string`) (required): The unique identifier for the event, formatted as `evt_{UUID}`. - **`items[].status`** (`string`) (required): The current status of an event. - Allowed values: `PENDING`, `DELIVERED`, `FAILED` - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. **Example:** ```json { "items": [ { "createdAt": "2026-02-01T12:00:00Z", "eventType": "enrollment.activated", "id": "evt_550e8400-e29b-41d4-a716-446655440000", "status": "DELIVERED" } ] } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # Retrieve File Execution Input Source: https://www.stedi.com/docs/healthcare/api-reference/get-execution-input This endpoint retrieves a file execution's input document before it passes through any translation or mappings. You can use it to retrieve 277CA claim acknowledgments or 835 Electronic Remittance Advice (ERAs) in X12 EDI format. 1. Call this endpoint with the file execution ID for the transaction you want to retrieve. This is returned as the `items[].fileExecutionId` in the [List Transactions](/healthcare/api-reference/get-list-transactions) and [Poll Transactions](/healthcare/api-reference/get-poll-transactions) endpoint responses. 2. The endpoint returns a `302` temporary redirect to the document download URL. Many HTTP clients will automatically follow this redirect, or have a simple follow redirects configuration to set. For example, the `-L` or `--location` flags in cURL requests will automatically follow the redirect. In this case, the response contains the full input document. If your implementation doesn't automatically follow the redirect, the response body contains a pre-signed URL in the `documentDownloadUrl` property. The URL expires after 60 minutes. 3. If required, make a `GET` request to download the input document from the `documentDownloadUrl`. ```bash curl --request GET \ --url "" \ --output /path/to/file.txt ``` There are no size restrictions on documents when fetching from this endpoint. ## Input document format [#input-document-format] The input document can be in either X12 EDI or JSON format, depending on the source. For example: - If you send an 837 claim to one of Stedi's JSON endpoints, the input document will be in JSON format. - If a payer sends you a 277CA claim acknowledgment or an 835 Electronic Remittance Advice (ERA), the input document will be in the original X12 EDI format, including the envelope. ```txt ISA*00* *00* *ZZ*STEDITEST *ZZ*599264680681 *260403*2042*^*00501*000001520*0*T*`~GS*HN*STEDITEST*599264680681*20260403*204210*1520*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KNAH9X25NM7JFSDAV1D5MXTW*20260403*204209*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KNAH9X25NM7JFSDAV1D5MXTW~DTP*050*D8*20260403~DTP*009*D8*20260403~HL*2*1*21*1~NM1*41*2*Test Data Health Services, Inc.*****46*123435~TRN*2*01KHCBK84E40QQYJVXA5VVXG54~STC*A0`17`AY*20260403*WQ*109.2~QTY*90*1.0~AMT*YU*109.2~HL*3*2*19*1~NM1*85*2*Therapy Associates*****XX*1999999984~TRN*1*0~REF*TJ*123456789~QTY*QA*1.0~AMT*YU*109.2~HL*4*3*PT*0~NM1*QC*1*Anon*John****MI*U7777788888~TRN*2*123456789~STC*A1`20*20260403*WQ*109.2~REF*D9*DO68G47DYWKAUD72Y6U7~DTP*472*RD8*20240101-20240101~SE*26*0001~GE*1*1520~IEA*1*000001520~ ``` ```txt ISA*00* *00* *ZZ*STEDITEST *ZZ*599264680681 *260403*1853*^*00501*000001519*0*T*>~GS*HP*STEDITEST*599264680681*20260403*185323*1519*X*005010X221A1~ST*835*0001~BPR*I*109.2*C*ACH************20260403~TRN*1*01KNAB2Q1HV0NV9PSFSEW8YBKS*1234567890~DTM*405*20260403~N1*PR*Stedi Test Payer*XV*STEDI~N3*228 PARK AVE S*STE 58460~N4*NEW YORK*NY*10003-1502~REF*EO*234567890~PER*BL~N1*PE*Therapy Associates*XX*1999999984~N3*123 Some St*Floor 1~N4*A City*NY*123450000~REF*TJ*333445678~LX*1~CLP*1111222223333*1*109.2*109.2*.0*ZZ*01KNAB2Q1HHKVCDS6T205GF09J*02*1~NM1*QC*1*Anon*John****MI*U7777788888~DTM*232*20240101~SVC*HC>90837>95*109.2*109.2**1.0*HC>90837>95*1.0~DTM*472*20240101~REF*6R*111222333~SE*21*0001~GE*1*1519~IEA*1*000001519~ ``` ## API Specification Fetch a file execution's input document before any translation and mappings. **Endpoint:** `GET /executions/{executionId}/input` **Base URL:** `https://core.us.stedi.com/2023-08-01` ### Parameters - **`executionId`** (path) (required): A unique identifier for the file execution within Stedi. This ID is included in the file processed event, or you can retrieve it manually from the file's details page within the Stedi portal. - Type: `string` ### Responses #### 302 GetExecutionInputDocument 302 response **Schema:** `GetExecutionInputDocumentResponseContent` **Properties:** - **`documentDownloadUrl`** (`string`): A URL to download the document. This URL is available for 60 minutes. **Example:** ```json { "documentDownloadUrl": "https://stedi-default-core-artifacts.s3.us-east-1.amazonaws.com/write/input/06bdccdc-4aaa-4aaa..." } ``` #### 400 BadRequestException 400 response **Schema:** `BadRequestExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 409 ResourceUnderChangeException 409 response **Schema:** `ResourceUnderChangeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) #### 422 UnprocessableEntityException 422 response **Schema:** `UnprocessableEntityExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 500 ServiceException 500 response **Schema:** `ServiceExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`exceptionCause`** (`object`) - **`exceptionCause.name`** (`string`) - **`exceptionCause.message`** (`string`) - **`exceptionCause.stack`** (`string`) #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) # Retrieve Batch Check Statuses Source: https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses This endpoint retrieves the processing status and other summary information for all of the eligibility checks in the specified batch. It doesn't include the complete eligibility response. For the full results of each eligibility check, call the [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility) endpoint instead. You can use this endpoint to determine whether specific eligibility checks within a batch have completed. You can also use the response to determine whether patients have active or inactive coverage without having to poll. 1. Call this endpoint with the batch ID for the eligibility check batch. This is the `batchId` Stedi returned in the [Batch Eligibility Checks](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint response. It's also available on the batch's details page in the Stedi portal. 2. Stedi returns information about the processing status of each eligibility check within the batch, including whether the check completed successfully and information about the patient's coverage result (`eligibilityCheckResult`). Each `item` in the response corresponds to one eligibility check within the batch. ## API Specification Retrieve status information for all eligibility checks within a batch, regardless of processing status **Endpoint:** `GET /eligibility-manager/batch/{batchId}/items` **Base URL:** `https://manager.us.stedi.com/2024-04-01` ### Parameters - **`batchId`** (path) (required): The unique identifier for the batch. This is the `batchId` returned in the Batch Eligibility Check endpoint response. It's also listed as the **Batch ID** in the Stedi portal. - Type: `string` - **`pageSize`** (query): The maximum number of elements to return in a page. If not specified, the default is 100. - Type: `integer` - **`pageToken`** (query): A token returned by a previous call to this operation in the `nextPageToken` property. If not specified, Stedi returns the first page of results. - Type: `string` - **`state`** (query): Filter for batch items in the specified states. Can be set to one or more of the following states: - `PENDING`: Stedi hasn't begun processing the eligibility check. - `VALIDATED`: Stedi finished validating the eligibility check and is ready to execute it. - `VALIDATION_FAILED`: Stedi found errors in the eligibility check that you need to fix before processing can continue. - `STARTED`: Stedi has begun processing the eligibility check. - `RETRYING`: Stedi is retrying the eligibility check. Stedi retries eligibility checks that fail due to payer connectivity issues for up to 8 hours. - `COMPLETED`: Stedi successfully processed the eligibility check and received a response from the payer. This doesn't indicate that the payer has active coverage, only that Stedi was able to get a response. - `COMPLETED_WITH_ERRORS`: Stedi finished processing the eligibility check, but couldn't get a response from the payer. - Type: `array` - **`eligibilityCheckResult`** (query): Filter for batch items with the specified eligibility check results. Can be set to one or more of the following results: - `ACTIVE`: The payer's response contains an active eligibility and benefit type. Visit [Eligibility and benefit type codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for a complete list of valid code values. - `INACTIVE`: The payer's response doesn't contain an active eligibility and benefit type. - `INVESTIGATE`: The payer returned an unexpected eligibility or benefit type code. Review the response and contact the payer if you have questions. - `FAILED`: The payer returned an error code in the response. Review the error code and retry the eligibility check. - Type: `array` ### Responses #### 200 GetBatchItems 200 response **Schema:** `GetBatchItemsResponseContent` **Properties:** - **`items`** (`array of BatchItem objects`): A list of batch items. Each `item` represents a single eligibility check in the batch. Unlike the polling endpoint, which only returns results for completed eligibility checks, this endpoint returns results for all eligibility checks in the batch, regardless of their processing status. All batch items may not be returned in a single response; use the `nextPageToken` to retrieve subsequent pages of results. - **`items[].additionalInfo`** (`any`): Additional information about the batch item, based on the batch type. - **`items[].additionalInfo (variant 1).eligibility`** (`object`) (required): Additional information specific to eligibility batch items. - **`items[].additionalInfo (variant 1).eligibility.aaaErrors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`items[].additionalInfo (variant 1).eligibility.aaaErrors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`items[].additionalInfo (variant 1).eligibility.aaaErrors[].description`** (`string`): The error description. - **`items[].additionalInfo (variant 1).eligibility.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].additionalInfo (variant 1).eligibility.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].additionalInfo (variant 1).eligibility.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].additionalInfo (variant 1).eligibility.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].additionalInfo (variant 1).eligibility.eligibilityCheckResult`** (`string`) - Allowed values: `ACTIVE`, `INACTIVE`, `INVESTIGATE`, `FAILED` - **`items[].additionalInfo (variant 1).eligibility.eligibilitySearchId`** (`string`): The eligibility search ID for this eligibility check. This is an identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`items[].additionalInfo (variant 1).eligibility.id`** (`string`): The unique identifier for this eligibility check. This is the ID of the specific eligibility check request within the batch. - **`items[].additionalInfo (variant 1).eligibility.outboundTraceId`** (`string`): A unique Stedi-generated identifier for the eligibility check. It's required for the generated X12 EDI transaction Stedi sends to payers. This identifier is different from the `requestId` and the `submitterTransactionIdentifier`. - You can use this identifier to find an eligibility check in the Stedi portal. Click **Find by ID** in the navigation bar and enter the `outboundTraceId` to go directly to the eligibility check's details page. - Don't use this ID to correlate eligibility check requests and responses. Use the `submitterTransactionIdentifier` property for correlation and tracking instead. - **`items[].additionalInfo (variant 1).eligibility.payerId`** (`string`): The payer ID for this eligibility check. - **`items[].additionalInfo (variant 1).eligibility.providerName`** (`string`): The provider's name as provided in the eligibility check. - **`items[].additionalInfo (variant 1).eligibility.providerNpi`** (`string`): The provider's NPI as provided in the eligibility check. - **`items[].additionalInfo (variant 1).eligibility.submitterTransactionIdentifier`** (`string`): The unique identifier you assigned to the eligibility check when you submitted the batch. Stedi also returns this identifier in the [Poll Batch Eligibility Checks](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-polling-eligibility) endpoint response, allowing you to correlate eligibility check requests and responses. - **`items[].additionalInfo (variant 1).eligibility.subscriberFirstName`** (`string`): The subscriber's first name as provided in the eligibility check. - **`items[].additionalInfo (variant 1).eligibility.subscriberLastName`** (`string`): The subscriber's last name as provided in the eligibility check. - **`items[].additionalInfo (variant 1).eligibility.subscriberMemberId`** (`string`): The subscriber's member ID as provided in the eligibility check. - **`items[].batchId`** (`string`) (required): The ID for the batch containing this eligibility check. - **`items[].createdAt`** (`string`) (required): The date and time when the eligibility check was created. - **`items[].index`** (`integer`): Only relevant for batches submitted through the JSON API. This is the index of the item in the batch. It starts at 0. - **`items[].requestId`** (`string`): A globally unique identifier for this eligibility check within Stedi. Stedi uses this identifier to construct the URL for the eligibility check's detail pages within the Stedi portal. Don't use this ID to correlate eligibility check requests and responses. Use the `additionalInfo.eligibility.submitterTransactionIdentifier` property for correlation and tracking instead. - **`items[].rowNumber`** (`integer`): Only relevant for batches submitted through CSV upload. This is the row number for this eligibility check in the CSV file. It starts at 2 because the first row of the CSV file is the header. - **`items[].state`** (`string`) (required): The current state of a batch item, which represents an eligibility check within a batch. - Allowed values: `PENDING`, `VALIDATED`, `VALIDATION_FAILED`, `STARTED`, `RETRYING`, `COMPLETED`, `COMPLETED_WITH_ERRORS` - **`items[].updatedAt`** (`string`) (required): The date and time when the eligibility check was last updated. - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. **Example:** ```json { "items": [ { "additionalInfo": { "eligibility": { "eligibilityCheckResult": "ACTIVE", "eligibilitySearchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "payerId": "BCBS", "submitterTransactionIdentifier": "ABC123456789", "subscriberFirstName": "John", "subscriberLastName": "Doe", "subscriberMemberId": "123456789" } }, "batchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "createdAt": "2025-03-31T14:25:30Z", "requestId": "req-01a2b3c4-d5e6-7f89-0123-456789abcdef", "rowNumber": 1, "state": "COMPLETED", "updatedAt": "2025-03-31T14:26:45Z" }, { "additionalInfo": { "eligibility": { "eligibilityCheckResult": "FAILED", "eligibilitySearchId": "01932c61-2d4f-7d22-85fa-c7db2e13e772", "payerId": "AETNA", "submitterTransactionIdentifier": "GHJ987654321", "subscriberFirstName": "Jane", "subscriberLastName": "Smith", "subscriberMemberId": "987654321" } }, "batchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "createdAt": "2025-03-31T14:25:30Z", "requestId": "req-02a2b3c4-d5e6-7f89-0123-456789abcdef", "rowNumber": 2, "state": "COMPLETED_WITH_ERRORS", "updatedAt": "2025-03-31T14:27:15Z" } ], "nextPageToken": "945ff6de213d3ef481d028065d4c12fb996a166a3a90ef98564318decfae50ce4b36d74b7e9d9bafa6e1d169" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Retrieve Batch Status Source: https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-batch-eligibility-status This endpoint retrieves the processing status of an eligibility check batch you submitted through the asynchronous [Batch Eligibility Checks](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint or through [CSV upload](/healthcare/batch-refresh-eligibility-checks#manual-submission) in the Stedi portal. You can use this endpoint to determine when to start polling for the results of the eligibility checks within the batch. For example, don't start polling until either the `successCount` or the `errorCount` are greater than zero because these indicate checks that Stedi has finished processing. You can also use this endpoint to monitor the progress of large batches and confirm that all checks have been completed. 1. Call this endpoint with the batch ID for the eligibility check batch. This is the `batchId` Stedi returned in the [Batch Eligibility Checks](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint response. It's also available on the batch's details page in the Stedi portal. 2. Stedi returns a summary of the batch's processing status, including the number of completed checks, the error count, and the overall batch status. ## API Specification Retrieve the status of an eligibility check batch submitted through the API or CSV upload **Endpoint:** `GET /eligibility-manager/batch/{batchId}` **Base URL:** `https://manager.us.stedi.com/2024-04-01` ### Parameters - **`batchId`** (path) (required): The unique identifier for the batch. This is the `batchId` returned in the Batch Eligibility Check endpoint response. It's also listed as the **Batch ID** in the Stedi portal. - Type: `string` ### Responses #### 200 GetBatch 200 response **Schema:** `GetBatchResponseContent` **Properties:** - **`batchType`** (`string`) (required): The type of batch. - Allowed values: `ELIGIBILITY` - **`createdAt`** (`string`) (required): The date and time when the batch was created. - **`errorCount`** (`integer`): The number of eligibility checks that failed during processing. A failure means that Stedi successfully processed the check but didn't receive a response from the payer, even after retrying. A common reason for failure is payer connectivity issues. - **`id`** (`string`) (required): The unique identifier for the batch. This is the `batchId` returned in the Batch Eligibility Check endpoint response. It's also listed as the **Batch ID** in the Stedi portal. - **`importUrl`** (`string`): The URL to download the original CSV file. Only relevant for batches submitted through CSV upload in the Stedi portal. - **`inProgressCount`** (`integer`): The number of eligibility checks that are currently in progress (started or retrying). - **`maxRetryHours`** (`integer`): The maximum number of hours that Stedi will retry eligibility checks in this batch that fail due to payer connectivity issues. This is the value that was set when the batch was created. Only applicable to batches submitted through the API. - **`name`** (`string`) (required): The name assigned to the batch upon creation. For CSV uploads, this is the name you provided when uploading the file. For API submissions, this is the same as the `batchId`. - **`source`** (`string`) - Allowed values: `CSV_IMPORT`, `API` - **`status`** (`string`) (required): The status of the batch. - Allowed values: `PENDING`, `VALIDATED`, `VALIDATION_FAILED`, `IN_PROGRESS`, `COMPLETED`, `COMPLETED_WITH_ERRORS` - **`successCount`** (`integer`): The number of eligibility checks that were successfully completed. This means that Stedi successfully sent the check to the payer and received a response, but doesn't indicate whether the payer returned benefits information. - **`totalCount`** (`integer`): The total number of eligibility checks in the batch. In the case of CSV uploads, one row in the CSV file corresponds to one eligibility check. - **`updatedAt`** (`string`) (required): The date and time when the batch was last updated. - **`validatedCount`** (`integer`): The number of eligibility checks that Stedi has validated. - **`validationFailedCount`** (`integer`): The number of eligibility checks that failed validation. This is relevant to CSV uploads, where Stedi validates each row in the CSV file before processing it. **Example:** ```json { "batchType": "ELIGIBILITY", "createdAt": "2025-06-13T21:00:52.496Z", "errorCount": 5, "id": "01976b18-6d90-71d1-b27b-2556a9fbf837", "importUrl": "https://s3.amazonaws.com/bucket/key", "inProgressCount": 0, "name": "test_CSV_upload", "source": "CSV_IMPORT", "status": "COMPLETED_WITH_ERRORS", "successCount": 245, "totalCount": 250, "updatedAt": "2025-06-16T15:59:20.312Z" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Poll Batch Eligibility Checks (271) Source: https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-polling-eligibility This endpoint retrieves the results of asynchronous eligibility checks you submitted through the asynchronous [Batch Eligibility Checks](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint or through [CSV upload](/healthcare/batch-refresh-eligibility-checks#manual-submission) in the Stedi portal. It doesn't return results for real-time eligibility checks. 1. Call this endpoint. You can optionally add one or more query parameters to filter the results you want to retrieve. 2. The endpoint returns completed checks matching the criteria. Stedi retries checks that fail due to [payer connectivity issues](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for 8 - 24 hours. It can take up to the configured retry period for all checks in a batch to return results. Each `item` in the response contains the benefits information for a completed eligibility check. Note that our documentation lists all enums officially allowed in the eligibility response. Some payers return non-compliant values, which Stedi passes through as is. ## Pagination [#pagination] By default, the response includes the results for up to 10 eligibility checks within a single page - each eligibility response is represented as one item in the `items` array. You can control the number of results returned per page using the `pageSize` query parameter, which accepts a value between 1 and 200. When there are additional pages of results, the response includes the `nextPageToken` property. To retrieve the next page of results, call the endpoint with the same `batchId` and other query parameters, and set the `pageToken` query parameter to the `nextPageToken` value. Repeat this process until the response doesn't include a `nextPageToken` property. If you set the page size to a value > 20, Stedi returns the requested batch check results in `gzip` format to reduce the size. Many common HTTP clients accept `gzip` by default, but if not, you must add the `Accept-Encoding: gzip` header to your request and resubmit. A page can be at most 6 MB. When a page exceeds that limit, Stedi returns an HTTP `400` error instead of the results. To get a successful response, add the `Accept-Encoding: gzip` header, or request a smaller page size. ## API Specification Retrieve batch eligibility check results **Endpoint:** `GET /eligibility-manager/polling/batch-eligibility` **Base URL:** `https://manager.us.stedi.com/2024-04-01` ### Parameters - **`pageSize`** (query): The maximum number of check results to return in a page - each check is represented as one item in the `items` array. If not specified, the default is 10. - If you set the page size to a value > 20, Stedi returns the requested batch check results in `gzip` format to reduce the size. Many common HTTP clients accept `gzip` by default, but if not, you must add the `Accept-Encoding: gzip` header to your request and resubmit. - When check results are especially large, Stedi may return fewer than the requested number per page. In these cases, you can use the `nextPageToken` property to retrieve the rest of the requested results. - A page can be at most 6 MB. If a page would be larger, Stedi returns a `400` `ValidationException` instead of the page. Add the `Accept-Encoding: gzip` header if your request doesn't include it, otherwise lower the page size. Resubmitting the same request returns the same error. - Type: `integer` - **`pageToken`** (query): A token returned by a previous call to this operation in the `nextPageToken` property. If not specified, Stedi returns the first page of results. - Type: `string` - **`batchId`** (query): An identifier for a batch of eligibility checks submitted through the [Batch Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint. Use this to retrieve results for eligibility checks in the batch. - Type: `string` - **`startDateTime`** (query): An ISO 8601 formatted string. For example `2023-08-28T00:00:00Z`. Stedi returns asynchronous eligibility checks that have completed processing after this time. Completed means that the payer has successfully returned a benefits response, the check has failed due to errors in the request, or that the payer has been unavailable for 8 hours and Stedi will no longer attempt to retry. - Type: `string` ### Responses #### 200 BatchEligibilityPolling 200 response **Schema:** `BatchEligibilityPollingResponseContent` **Properties:** - **`items`** (`array of BatchEligibilityResultItem objects`) (required): Each eligibility check response is included as a separate item in this array. The response shape is identical to the shape of the response for the [Real-Time Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) endpoint, with the addition of two new properties that help you correlate the results with individual eligibility checks. - `batchId` contains the `batchId` Stedi returned from the [Batch Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint when making the request. - `submitterTransactionIdentifier` contains the unique identifier for the eligibility check that you submitted in the request. - **`items[].batchId`** (`string`): The `batchId` Stedi returned from the [Batch Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint. - **`items[].batchName`** (`string`): The name Stedi uses when displaying this batch on the [Eligibility check batches page](https://portal.stedi.com/app/healthcare/checks/batch). If you didn't specify a name when submitting the batch, this is the same as the `batchId`. - **`items[].benefitsInformation`** (`array of BenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, co-pays, etc.), out of pocket maximums, and more. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. The payer may send benefits information for service type codes (STCs) you didn't request - this is expected. The STC you send in the request tells the payer the types of benefits information you want, but they aren't required to respond with exactly the same STC(s) in the response. Receiving different STCs than you requested can also mean that the payer is ignoring the STC you sent, which is why we recommend [testing payers](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes#test-payer-stc-support) to determine their support for specific STCs. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) for more information about benefit types, details about how to interpret the `benefitsInformation` array, and additional examples. - **`items[].benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`items[].benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`items[].benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`items[].benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`items[].benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`items[].benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`items[].benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`items[].benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`items[].benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`items[].benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`items[].benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`items[].benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`items[].benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`items[].benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`items[].benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsRelatedEntity`** (`object`): Identify another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. This array is commonly used to designate the patient's primary care provider (PCP), another organization that handles a specific carveout benefit type, or another health plan for the patient (coordination of benefits scenarios). This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - **`items[].benefitsInformation[].benefitsRelatedEntity.address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntity.address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntity.address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntity.address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntity.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntity.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntity.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntity.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntity.contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntity.contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntity.entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntity.entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntity.entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntity.entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntity.entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntity.entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntity.entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntity.entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntity.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntity.providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntity.providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntity.providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`items[].benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`items[].benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`items[].benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`items[].benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`items[].benefitsInformation[].eligibilityAdditionalInformation`** (`object`) - **`items[].benefitsInformation[].eligibilityAdditionalInformation.codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformation.codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformation.codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformation.industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformation.industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformation.injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`items[].benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`items[].benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`items[].benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`items[].benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`items[].benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`items[].benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`items[].benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`items[].benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`items[].benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`items[].benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`items[].benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`items[].controlNumber`** (`string`): An identifier for the payer's response. - **`items[].dependents`** (`array of ResponseDependent objects`): Information about the patient when they are a dependent. When the patient is a dependent, this array will contain a single object with the patient's information. When the patient is a subscriber, or considered to be a subscriber because they have a unique member ID, their information is returned in the `subscriber` object, and this array will be empty. When present, this object will always include the dependent's name for identification, but many payers will also return the date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the dependent's full legal name. - **`items[].dependents[].aaaErrors`** (`array of EligibilityCheckDependentError objects`) - **`items[].dependents[].aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `33`, `35`, `42`, `43`, `45`, `47`, `48`, `49`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `77`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA` - **`items[].dependents[].aaaErrors[].description`** (`string`): The error description. - **`items[].dependents[].aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependents[].aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependents[].aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependents[].aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependents[].address`** (`object`) - **`items[].dependents[].address.address1`** (`string`): The first line of the address. - **`items[].dependents[].address.address2`** (`string`): The second line of the address. - **`items[].dependents[].address.city`** (`string`): The city. - **`items[].dependents[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependents[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependents[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependents[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependents[].birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].dependents[].dateOfBirth`** (`string`): The member's date of birth. - **`items[].dependents[].dateTimePeriod`** (`string`): The military service date. - **`items[].dependents[].dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].dependents[].description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].dependents[].employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].dependents[].endDateTimePeriod`** (`string`): The military service end date. - **`items[].dependents[].entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`items[].dependents[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependents[].firstName`** (`string`): The member's first name. - **`items[].dependents[].gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].dependents[].governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].dependents[].groupDescription`** (`string`): Group name - **`items[].dependents[].groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].dependents[].healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].dependents[].healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].dependents[].healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].dependents[].informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].dependents[].insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`items[].dependents[].lastName`** (`string`): The member's last name. - **`items[].dependents[].maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].dependents[].maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].dependents[].memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`items[].dependents[].middleName`** (`string`): The member's middle name or initial. - **`items[].dependents[].militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].dependents[].planDescription`** (`string`): Plan name - **`items[].dependents[].planNetworkDescription`** (`string`): Plan network name - **`items[].dependents[].planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].dependents[].planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].dependents[].relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`items[].dependents[].relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`items[].dependents[].responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].dependents[].responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].dependents[].responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].dependents[].responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].dependents[].responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependents[].responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependents[].responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependents[].responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependents[].responseProvider.address`** (`object`) - **`items[].dependents[].responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].dependents[].responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].dependents[].responseProvider.address.city`** (`string`): The city. - **`items[].dependents[].responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependents[].responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependents[].responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependents[].responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependents[].responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].dependents[].responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].dependents[].responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependents[].responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].dependents[].responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].dependents[].responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].dependents[].responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].dependents[].responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].dependents[].responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].dependents[].responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].dependents[].responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].dependents[].responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].dependents[].responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].dependents[].responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].dependents[].responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].dependents[].responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].dependents[].responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].dependents[].ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].dependents[].startDateTimePeriod`** (`string`): The military service start date. - **`items[].dependents[].suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].dependents[].uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`items[].errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`items[].errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`items[].errors[].description`** (`string`): The error description. - **`items[].errors[].field`** (`string`): The error type, `AAA`. - **`items[].errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].id`** (`string`): A globally unique identifier for this eligibility check across all Stedi accounts. It's formatted as `ec_`. For example: `ec_550e8400-e29b-41d4-a716-446655440000`. You can use this ID to track this eligibility check and to construct deep links to eligibility checks in the Stedi portal. - **`items[].implementationTransactionSetSyntaxError`** (`string`): The implementation transaction set error code provided in `IK502` of the 999 transaction. - **`items[].meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`items[].meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`items[].meta.billerId`** (`string`): The biller ID Stedi assigns to this request. - **`items[].meta.outboundTraceId`** (`string`): The unique identifier Stedi sent to identify this check to the payer. Instead of this property, we recommend using `id` to identify and track eligibility checks. An eligibility check's `id` is guaranteed to be globally unique, and you can use it to deep link to the eligibility check's results within the Stedi portal. - **`items[].meta.senderId`** (`string`): The sender ID Stedi assigns to this request. - **`items[].meta.submitterId`** (`string`): The submitter ID Stedi assigns to this request. - **`items[].meta.traceId`** (`string`): A unique identifier Stedi assigns to this check. This should be the same as the `outboundTraceId`. - **`items[].payer`** (`object`): Information about the payer providing the benefits information. The response will always include the payer's business name and an identifier, such as the payer's tax ID. Most payers also include contact information. - **`items[].payer.aaaErrors`** (`array of EligibilityCheckPayerError objects`) - **`items[].payer.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `04`, `41`, `42`, `79`, `80`, `T4` - **`items[].payer.aaaErrors[].description`** (`string`): The error description. - **`items[].payer.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].payer.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].payer.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].payer.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`items[].payer.contactInformation`** (`object`) - **`items[].payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].payer.contactInformation.name`** (`string`): The name of the contact person. - **`items[].payer.employersId`** (`string`): Deprecated; The payer's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`items[].payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`items[].payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`items[].payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`items[].payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`items[].payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`items[].payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`items[].payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].payer.payorIdentification`** (`string`): The payer identification. - **`items[].payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`items[].planDateInformation`** (`object`): Contains the dates associated with the subscriber and dependents' (if applicable) insurance plan. This information is used to determine their eligibility for benefits. - Most fields contain a single date, but some can contain either a single date or a date range. Each field's documentation specifies its format. - Fields that can contain either a single date or date range include: `plan`, `eligibility`, `planBegin`, `admission`, and `service`. - The provided dates apply to every benefit within the patient's health plan unless specifically noted within a `benefitsInformation[].benefitsDateInformation` object. - If the payer sends back date(s) that are different for the subscriber and dependents, Stedi includes only the dates for the dependent in this object and omits the subscriber's date(s). Dependents can have different coverage dates than the subscriber due to qualifying life events, such as starting a new job or passing the age limit for coverage through their parent's plan. - Most payers return either `plan` or `planBegin` and `planEnd`, but the exact dates returned depend on the payer's discretion and the patient's insurance plan. - If the date of service is after the earliest ending `plan`, `eligibility`, `planEnd`, `eligibilityEnd`, `policyEffective`, or `policyExpiration` value, the patient likely doesn't have active coverage. - **`items[].planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].planDateInformation.admission`** (`string`): The admission date or dates. - **`items[].planDateInformation.benefit`** (`string`): The benefit date. - **`items[].planDateInformation.benefitBegin`** (`string`): The benefit begin date. - **`items[].planDateInformation.benefitEnd`** (`string`): The benefit end date. - **`items[].planDateInformation.certification`** (`string`): The certification date. - **`items[].planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].planDateInformation.completion`** (`string`): The completion date. - **`items[].planDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`items[].planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].planDateInformation.discharge`** (`string`): The discharge date. - **`items[].planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].planDateInformation.issue`** (`string`): The issue date. - **`items[].planDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. - **`items[].planDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].planDateInformation.periodStart`** (`string`): The start of a period. - **`items[].planDateInformation.plan`** (`string`): Plan effective dates. - **`items[].planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`items[].planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].planDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].planDateInformation.service`** (`string`): The service date or dates. - **`items[].planDateInformation.status`** (`string`): The status date. - **`items[].planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`items[].planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`items[].planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`items[].planInformation.caseNumber`** (`string`): The case number - **`items[].planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`items[].planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`items[].planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`items[].planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`items[].planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`items[].planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`items[].planInformation.eligibilityCategory`** (`string`): The eligibility category - **`items[].planInformation.facilityIdNumber`** (`string`): The facility ID number - **`items[].planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`items[].planInformation.familyUnitNumber`** (`string`): The family unit number - **`items[].planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`items[].planInformation.groupDescription`** (`string`): The group description - **`items[].planInformation.groupNumber`** (`string`): The group number - **`items[].planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`items[].planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`items[].planInformation.issueNumber`** (`string`): The issue number - **`items[].planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`items[].planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`items[].planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`items[].planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`items[].planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`items[].planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`items[].planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`items[].planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`items[].planInformation.planDescription`** (`string`): The plan description - **`items[].planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`items[].planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`items[].planInformation.planNumber`** (`string`): The plan number - **`items[].planInformation.policyNumber`** (`string`): The group or policy number - **`items[].planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`items[].planInformation.priorIdNumber`** (`string`): The prior identifier number - **`items[].planInformation.referralNumber`** (`string`): The referral number - **`items[].planInformation.socialSecurityNumber`** (`string`): The social security number - **`items[].planInformation.stateLicenseNumber`** (`string`): The state license number - **`items[].planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`items[].planInformation.userIdentification`** (`string`): The user identification - **`items[].planStatus`** (`array of PlanStatus objects`): Please use `benefitsInformation` instead. - **`items[].planStatus[].planDetails`** (`string`) - **`items[].planStatus[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].planStatus[].status`** (`string`) - **`items[].planStatus[].statusCode`** (`string`) - **`items[].provider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].provider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].provider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].provider.aaaErrors[].description`** (`string`): The error description. - **`items[].provider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].provider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].provider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].provider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].provider.address`** (`object`) - **`items[].provider.address.address1`** (`string`): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].provider.payorIdentification`** (`string`): The payer identification. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].provider.providerOrgName`** (`string`): The provider's organization name. - **`items[].provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].provider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].reassociationKey`** (`string`) - **`items[].status`** (`string`): Errors Stedi encountered when generating or sending the final X12 EDI transaction to the payer. These can include validation errors and payer unavailable errors that prevent delivery. - **`items[].submitterTransactionIdentifier`** (`string`): The unique identifier for the eligibility check that you submitted in the original batch request. - **`items[].subscriber`** (`object`): Information about the primary policyholder for the insurance plan listed in the original eligibility check request. The response will always include either the subscriber's name or member ID for identification, but most payers will also return the subscriber's date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the subscriber's full legal name. - **`items[].subscriber.aaaErrors`** (`array of EligibilityCheckSubscriberError objects`) - **`items[].subscriber.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `33`, `35`, `42`, `43`, `45`, `47`, `48`, `49`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `78`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA` - **`items[].subscriber.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.address`** (`object`) - **`items[].subscriber.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`items[].subscriber.dateTimePeriod`** (`string`): The military service date. - **`items[].subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`items[].subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`items[].subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.firstName`** (`string`): The member's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].subscriber.groupDescription`** (`string`): Group name - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`items[].subscriber.lastName`** (`string`): The member's last name. - **`items[].subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`items[].subscriber.middleName`** (`string`): The member's middle name or initial. - **`items[].subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].subscriber.planDescription`** (`string`): Plan name - **`items[].subscriber.planNetworkDescription`** (`string`): Plan network name - **`items[].subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`items[].subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`items[].subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.responseProvider.address`** (`object`) - **`items[].subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.responseProvider.address.city`** (`string`): The city. - **`items[].subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].subscriberTraceNumbers`** (`array of SubscriberTraceNumber objects`): A unique identifier for the eligibility request. It's used to trace the transaction. Stedi always generates a trace number for internal tracking, and the payer may generate one as well. Stedi returns both its internal trace number and the payer's trace number (if present) in this array. You can't set your own trace number when submitting eligibility checks through this endpoint. - **`items[].subscriberTraceNumbers[].originatingCompanyIdentifier`** (`string`): The identifier of the organization that assigned the trace number. - **`items[].subscriberTraceNumbers[].referenceIdentification`** (`string`): The unique trace number assigned to the transaction. - **`items[].subscriberTraceNumbers[].secondaryReferenceIdentification`** (`string`): Identifies a subdivision within the organization that assigned the trace number. - **`items[].subscriberTraceNumbers[].traceType`** (`string`): The full name of the `traceTypeCode`. For example `Current Transaction Trace Numbers`. - **`items[].subscriberTraceNumbers[].traceTypeCode`** (`string`): The code that identifies the type of trace number. Can be `1` - Current Transaction Trace Numbers (refers to trace numbers assigned by the payer) or `2` - Referenced Trace Numbers (refers to numbers sent in the original eligibility check request). - **`items[].tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original eligibility check request. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`items[].transactionSetAcknowledgement`** (`string`): The transaction set acknowledgment code provided in in the [X12 EDI 999 response](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231/01HRF41ES1DVGCA6X1EHSRPFXZ#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.transaction_set_response_trailer_IK5). - **`items[].warnings`** (`array of Warning objects`): Issues with your eligibility request that could affect the results, or information about the response. For example, warnings can help explain why the request was rejected. - **`items[].warnings[].code`** (`string`): The warning code. - **`items[].warnings[].description`** (`string`): The warning description. - **`items[].x12`** (`string`): Typically this property contains the raw X12 EDI [271 Eligibility Benefit Response](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-response-x279a1/01GS66YHZPB37ABF34DBPSR213) from the payer. In some circumstances, this property may contain a [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) instead of a 271. A 999 indicates validation errors in the X12 EDI transaction, such as improper formatting or missing or invalid values. If the 999 is returned in this property, many of the other response properties will be empty, as they are mapped to information in the 271. - **`nextPageToken`** (`string`): A Stedi-generated token that you can submit in the `pageToken` query parameter to retrieve the next page of results. If there are no more results, this property is not included in the response. **Example:** ```json { "items": [ { "batchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "controlNumber": "000022222", "eligibilitySearchId": "06956c88-a177-5252-b868-ju4974dd54gh", "errors": [ { "code": "79", "description": "Invalid Participant Identification", "followupAction": "Please Correct and Resubmit", "location": "2100A", "possibleResolutions": "Payer TEST is not configured. Please check our published payer list or contact Stedi support to resolve." } ], "id": "ec_750e8400-e29b-41d4-a716-446655440002", "meta": { "outboundTraceId": "01JCP62EYY1N6PZABF9Q45EN5Y" }, "status": "ERROR", "submitterTransactionIdentifier": "ABC123456789", "tradingPartnerServiceId": "TEST" }, { "batchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "benefitsInformation": [ { "additionalInformation": [ { "description": "Complete Care Management" } ], "code": "1", "name": "Active Coverage", "planCoverage": "Open Access Plus", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" }, { "description": "Coinsurance does apply to member's out-of-pocket maximum" }, { "description": "Copay does apply to member's out-of-pocket maximum" }, { "description": "Deductible does apply to member's out-of-pocket maximum" } ], "benefitAmount": "6000", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "benefitAmount": "500", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" }, { "description": "Copay does apply to member's out-of-pocket maximum" }, { "description": "Coinsurance does apply to member's out-of-pocket maximum" }, { "description": "Deductible does apply to member's out-of-pocket maximum" } ], "benefitAmount": "3000", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "benefitAmount": "250", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "15000", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "Coinsurance does apply to member's out-of-pocket maximum" }, { "description": "Deductible does apply to member's out-of-pocket maximum" } ], "benefitAmount": "30000", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitPercent": "0.1", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ] }, { "benefitAmount": "7500", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "Deductible does apply to member's out-of-pocket maximum" }, { "description": "Coinsurance does apply to member's out-of-pocket maximum" } ], "benefitAmount": "15000", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ] }, { "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Active Coverage", "serviceTypeCodes": [ "A7", "BC", "A8", "A4", "A5", "A6", "7", "4", "BB", "22" ], "serviceTypes": [ "Psychiatric - Inpatient", "Day Care (Psychiatric)", "Psychiatric - Outpatient", "Psychiatric", "Psychiatric - Room and Board", "Psychotherapy", "Anesthesia", "Diagnostic X-Ray", "Partial Hospitalization (Psychiatric)", "Social Work" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "authOrCertIndicator": "N", "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Outpatient Hospital", "industryCode": "22" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Outpatient Hospital", "industryCode": "22" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "BC", "A4", "A6", "4", "22" ], "serviceTypes": [ "Day Care (Psychiatric)", "Psychiatric", "Psychotherapy", "Diagnostic X-Ray", "Social Work" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "authOrCertIndicator": "N", "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "A8" ], "serviceTypes": [ "Psychiatric - Outpatient" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "authOrCertIndicator": "N", "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "A4", "A6", "4", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Diagnostic X-Ray", "Social Work" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "authOrCertIndicator": "N", "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "A4", "A6", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Social Work" ] }, { "authOrCertIndicator": "N", "benefitAmount": "20", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A4", "A6", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Social Work" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "authOrCertIndicator": "N", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A4", "A6", "4", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Diagnostic X-Ray", "Social Work" ] }, { "additionalInformation": [ { "description": "Included For Specific Services" } ], "authOrCertIndicator": "N", "benefitAmount": "20", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A4", "A6", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Social Work" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Included For Specific Services" } ], "authOrCertIndicator": "N", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A4", "A6", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Social Work" ] }, { "additionalInformation": [ { "description": "Services rendered thru Client Specific Network" } ], "authOrCertIndicator": "N", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A4", "A6", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Social Work" ] }, { "additionalInformation": [ { "description": "Services rendered thru Client Specific Network" } ], "authOrCertIndicator": "N", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A4", "A6", "4", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Diagnostic X-Ray", "Social Work" ] }, { "additionalInformation": [ { "description": "Services rendered thru Client Specific Network" } ], "authOrCertIndicator": "N", "benefitAmount": "20", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Telehealth Provided Other than in Patient’s Home", "industryCode": "02" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A4", "A6", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Social Work" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Services rendered thru Client Specific Network" } ], "authOrCertIndicator": "N", "benefitAmount": "20", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A4", "A6", "22" ], "serviceTypes": [ "Psychiatric", "Psychotherapy", "Social Work" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Services rendered thru Client Specific Network" } ], "authOrCertIndicator": "Y", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "7" ], "serviceTypes": [ "Anesthesia" ] }, { "authOrCertIndicator": "Y", "code": "CB", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Coverage Basis", "serviceTypeCodes": [ "7", "BB" ], "serviceTypes": [ "Anesthesia", "Partial Hospitalization (Psychiatric)" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "authOrCertIndicator": "Y", "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "7" ], "serviceTypes": [ "Anesthesia" ] }, { "authOrCertIndicator": "Y", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "7" ], "serviceTypes": [ "Anesthesia" ] }, { "authOrCertIndicator": "N", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Outpatient Hospital", "industryCode": "22" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Outpatient Hospital", "industryCode": "22" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ] }, { "additionalInformation": [ { "description": "Services rendered thru Client Specific Network" } ], "authOrCertIndicator": "N", "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Outpatient Hospital", "industryCode": "22" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Outpatient Hospital", "industryCode": "22" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "authOrCertIndicator": "Y", "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "BB" ], "serviceTypes": [ "Partial Hospitalization (Psychiatric)" ] }, { "additionalInformation": [ { "description": " Provider is out of network based on NPI ID provided in request." } ], "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "MH" ], "serviceTypes": [ "Mental Health" ] }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" }, { "description": "Coinsurance does apply to member's out-of-pocket maximum" }, { "description": "Copay does apply to member's out-of-pocket maximum" }, { "description": "Deductible does apply to member's out-of-pocket maximum" } ], "benefitAmount": "5760", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "benefitAmount": "500", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" }, { "description": "Copay does apply to member's out-of-pocket maximum" }, { "description": "Coinsurance does apply to member's out-of-pocket maximum" }, { "description": "Deductible does apply to member's out-of-pocket maximum" } ], "benefitAmount": "2760", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "Includes services provided by Client Specific Network" } ], "benefitAmount": "250", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "15000", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "Coinsurance does apply to member's out-of-pocket maximum" }, { "description": "Deductible does apply to member's out-of-pocket maximum" } ], "benefitAmount": "30000", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "7500", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "Deductible does apply to member's out-of-pocket maximum" }, { "description": "Coinsurance does apply to member's out-of-pocket maximum" } ], "benefitAmount": "15000", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" } ], "controlNumber": "333344444", "eligibilitySearchId": "01922a35-a177-7171-b868-cd4974dd54df", "errors": [], "id": "ec_850e8400-e29b-41d4-a716-446655440003", "meta": { "applicationMode": "production", "outboundTraceId": "01J2VZA127GH93JT74HJU", "senderId": "030240928", "submitterId": "117151744", "traceId": "01J2VZA127GH93JT74HJU" }, "payer": { "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "1234567890" }, { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "website.company.com" } ] }, "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "federalTaxpayersIdNumber": "123412345", "name": "ABCDE" }, "planDateInformation": { "eligibilityBegin": "20220102", "planBegin": "20240101", "planEnd": "20241231" }, "planInformation": { "groupDescription": "ABCDE", "groupNumber": "12341234", "priorIdNumber": "1234567890" }, "planStatus": [ { "planDetails": "Open Access Plus", "serviceTypeCodes": [ "30" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A7", "BC", "A8", "A4", "A5", "A6", "7", "4", "BB", "22" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "MH" ], "status": "Active Coverage", "statusCode": "1" } ], "provider": { "entityIdentifier": "Provider", "entityType": "Non-Person Entity", "npi": "1234567890", "providerName": "ACME HEALTH SERVICES" }, "reassociationKey": "123456789", "submitterTransactionIdentifier": "DEF123456799", "subscriber": { "address": { "address1": "1234 FIRST ST", "city": "NEW YORK", "postalCode": "123451111", "state": "WV" }, "dateOfBirth": "19750101", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "firstName": "JANE", "gender": "F", "groupNumber": "123456789", "lastName": "DOE", "memberId": "1234567892", "middleName": "A" }, "tradingPartnerServiceId": "123456789", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *111111*1234*^*00501*123456782*0*P*>~GS*HB*STEDI*117151744*20240326*111000*1*X*005010X279A1~ST*271*1001*005010X279A1~BHT*0022*11*01J2VZA127GH93JT74HJU*20240326*1514~HL*1**20*1~NM1*PR*2*ABCDE*****FI*111000123~PER*IC**TE*123456789*UR*website.company.com~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****XX*11234567890~HL*3*2*22*0~NM1*IL*1*DOE*JANE*A***MI*123456789~REF*6P*123456789*ABCDE~REF*Q4*123456789~N3*1234 FIRST ST~N4*NEW YORK*WV*123451111~DMG*D8*19750101*F~INS*Y*18*001*25~DTP*356*D8*20220102~DTP*346*D8*20240101~DTP*347*D8*20241231~EB*1**30**Open Access Plus~MSG*Complete Care Management~EB*G*FAM*30***23*6000.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*FAM*30***23*500.00*****Y~MSG*Includes services provided by Client Specific Network~EB*G*IND*30***23*3000.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*IND*30***23*250.00*****Y~MSG*Includes services provided by Client Specific Network~EB*C*FAM*30***23*15000.00*****N~EB*G*FAM*30***23*30000.00*****N~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*A*IND*30*****.10****Y~EB*C*IND*30***23*7500.00*****N~EB*G*IND*30***23*15000.00*****N~MSG*Deductible does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~EB*A*IND*30*****.50****N~EB*1**A7^BC^A8^A4^A5^A6^7^4^BB^22*********W~EB*C*IND*BC^A4^A6^4^22****0.00****N*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*22~EB*C*IND*A8****0.00****N*Y~MSG*Includes services provided by Client Specific Network~EB*C*IND*A4^A6^4^22****0.00****N*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*11~EB*C*IND*A4^A6^22****0.00****N*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*02~EB*B*IND*A4^A6^22***27*20.00****N*Y~III*ZZ*11~EB*A*IND*A4^A6^4^22*****.00***N*Y~III*ZZ*11~EB*B*IND*A4^A6^22***27*20.00****N*Y~MSG*Included For Specific Services~III*ZZ*02~EB*A*IND*A4^A6^22*****.00***N*Y~MSG*Included For Specific Services~III*ZZ*02~EB*A*IND*A4^A6^22*****.00***N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*02~EB*A*IND*A4^A6^4^22*****.00***N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*11~EB*B*IND*A4^A6^22***27*20.00****N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*02~EB*B*IND*A4^A6^22***27*20.00****N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*11~EB*A*IND*7*****.00***Y*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*11~EB*CB**7^BB********Y*Y~EB*C*IND*7****0.00****Y*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*11~EB*A*IND*7*****.00***Y*Y~III*ZZ*11~EB*A*IND*4*****.00***N*Y~III*ZZ*22~EB*A*IND*4*****.00***N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*22~EB*C*IND*BB****0.00****Y*Y~MSG*Includes services provided by Client Specific Network~EB*1**MH~MSG* Provider is out of network based on NPI ID provided in request.~EB*G*FAM*30***29*5760.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*FAM*30***29*500.00*****Y~MSG*Includes services provided by Client Specific Network~EB*G*IND*30***29*2760.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*IND*30***29*250.00*****Y~MSG*Includes services provided by Client Specific Network~EB*C*FAM*30***29*15000.00*****N~EB*G*FAM*30***29*30000.00*****N~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*IND*30***29*7500.00*****N~EB*G*IND*30***29*15000.00*****N~MSG*Deductible does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~SE*119*1001~GE*1*1~IEA*1*123456782~" } ], "nextPageToken": "01932c61-2d4f-7d22-85fa-c7db2e13e771" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # 277CA Report Source: https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-reports-277 The 277CA claim acknowledgment indicates whether a claim was accepted or rejected and (if relevant) the reasons for rejection. This endpoint retrieves processed 277CA transactions from Stedi. 1. Call this endpoint with the `transactionId` of the 277CA you want to retrieve. You can retrieve the transaction ID through event destinations or through Stedi's API. [Learn more](/healthcare/receive-claim-responses#discover-processed-responses) 2. The endpoint returns the 277CA in JSON format. ## API Specification Retrieve a 277CA claim acknowledgment in JSON format **Endpoint:** `GET /change/medicalnetwork/reports/v2/{transactionId}/277` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`transactionId`** (path) (required): A unique identifier for the processed 277 transaction within Stedi. This ID is included in the transaction processed event, which you can receive automatically through Stedi [webhooks](https://www.stedi.com/docs/healthcare/configure-webhooks). You can also retrieve it through the [Poll Transactions endpoint](https://www.stedi.com/docs/healthcare/api-reference/get-poll-transactions). - Type: `string` ### Responses #### 200 ConvertReport277 200 response **Schema:** `ConvertReport277ResponseContent` **Properties:** - **`meta`** (`object`) (required): Metadata that helps Stedi track and debug the response. - **`meta.applicationMode`** (`string`): Whether this is a test or production ERA. - **`meta.senderId`** (`string`): An identifier for the most recent sender of the ERA. This is usually not the original sender, so this value is unlikely to be a payer ID. When Stedi processes and delivers ERAs through the clearinghouse, this value is always `STEDI`. - **`meta.traceId`** (`string`): Not currently used. - **`meta.transactionId`** (`string`): The Stedi transaction identifier. - **`transactions`** (`array of ReportsClaimAcknowledgmentResponse objects`): The payer's 277 response. - **`transactions[].controlNumber`** (`string`): The control number the payer provided in the claim status response. This is used to identify the transaction. - **`transactions[].payers`** (`array of ClaimAcknowledgmentPayer objects`): Information about the payer (or intermediary clearinghouse) and the claim status transactions included in the response. - **`transactions[].payers[].centersForMedicareAndMedicaidServicePlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services Plan ID. This is specifically for Health Plan ID (HPID) or Other Entity Identifier (OEID), both of which are no longer mandated for use. - **`transactions[].payers[].claimStatusTransactions`** (`array of ClaimAcknowledgmentTransactions objects`): Claim status details. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails`** (`array of ClaimAcknowledgmentDetails objects`): More detailed status information. This includes information about the patient, provider, and services rendered. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails`** (`array of PatientClaimStatusDetails objects`): Patient information and the status of claims related to the patient. You can use the `claims[].claimStatus.referencedTransactionTraceNumber` in this object to correlate the 277CA with the original claim. Some payers batch acknowledgments for multiple claims into a single 277CA. In these cases, the 277CA will contain multiple `patientClaimStatusDetails` objects, each with its own `referencedTransactionTraceNumber` for the corresponding claim. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims`** (`array of ReportsClaims objects`): Status information for the claim or service line. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus`** (`object`) - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.billTypeIdentifier`** (`string`): The bill type identification. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.claimServiceBeginDate`** (`string`): The starting date of the service, formatted as `YYYYMMDD`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.claimServiceDate`** (`string`): The date of the service, formatted as `YYYYMMDD`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.claimServiceEndDate`** (`string`): The ending date of the service, formatted as `YYYYMMDD`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.clearinghouseTraceNumber`** (`string`): The identifier the clearinghouse assigned to the original claim. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses`** (`array of InformationClaimStatus objects`): Claim status information. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].adjudicatedFinalizedDate`** (`string`): Not used. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].claimPaymentAmount`** (`string`): Not used. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].informationStatuses`** (`array of ClaimLevelStatus objects`) - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].remittanceDate`** (`string`): Not used. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].remittanceTraceNumber`** (`string`): Not used. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].statusInformationActionCode`** (`string`): Code indicating the action the payer took on the claim in claim status reports - Allowed values: `U`, `WQ` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].statusInformationActionCodeValue`** (`string`): Human-readable descriptions for claim level status information action codes - Allowed values: `Reject`, `Accept` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].statusInformationEffectiveDate`** (`string`): The effective date of the status information, formatted as `YYYYMMDD`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].statusMessage`** (`string`): Additional free-form information about the claim status. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].totalClaimChargeAmount`** (`string`): The total amount of charges in the original claim, expressed as a decimal. This may differ from the total charges submitted due to claims processing instructions, such as claim splitting. Note that some HMO encounters supply zero as the amount of original charges. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.patientAccountNumber`** (`string`): The patient control number provided in the original claim. Please use `referencedTransactionTraceNumber` to correlate the payer's response with the original claim. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.pharmacyPrescriptionNumber`** (`string`): Not used. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.referencedTransactionTraceNumber`** (`string`): The patient control number provided in the original claim. It's the same as: - Box 26 (Patient's Account No.) on the CMS-1500 submission form. - The `claimInformation.patientControlNumber` in JSON claim submissions. We recommend using this value to correlate the payer's response with the original claim. When matching transactions, treat the patient control number as case-insensitive, even if the submitted value included both lower and uppercase characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.tradingPartnerClaimNumber`** (`string`): The payer's unique identifier for the claim. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.voucherIdentifier`** (`string`): Not used. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines`** (`array of ClaimAcknowledgmentServiceLines objects`): Information about specific services within a claim. This object is only included in the 277CA when the claim is rejected because of errors with the service line information provided. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].beginServiceLineDate`** (`string`): The starting date of the service, formatted as `YYYYMMDD`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].endServiceLineDate`** (`string`): The ending date of the service, formatted as `YYYYMMDD`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].lineItemControlNumber`** (`string`): A unique identifier for the service line that matches the `providerControlNumber` submitted in the original claim. You can use this value to correlate the payer's response with specific service lines from the original claim. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service`** (`object`): Information about the service provided. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.amountPaid`** (`string`): The amount paid for the service, expressed as a decimal. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.chargeAmount`** (`string`): The submitted service charge, expressed as a decimal. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.procedureCode`** (`string`): The identifying code for the product or service. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.procedureModifiers`** (`array of strings`): Identifies special circumstances related to the performance of the service. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.revenueCode`** (`string`): The National Uniform Billing Committee Revenue Code. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.serviceIdQualifierCode`** (`string`): Code identifying the source of the procedure code in claim status reports. - Allowed values: `AD`, `ER`, `HC`, `HP`, `IV`, `NU`, `WK` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.serviceIdQualifierCodeValue`** (`string`): Human-readable descriptions for service ID qualifier codes. - Allowed values: `American Dental Association Codes`, `Jurisdiction Specific Procedure and Supply Codes`, `Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes`, `Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code`, `Home Infusion EDI Coalition (HIEC) Product/Service Code`, `National Uniform Billing Committee (NUBC) UB92 Codes`, `Advanced Billing Concepts (ABC) Codes` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].service.submittedUnits`** (`string`): The number of units of service that were submitted, expressed as a decimal. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].serviceClaimStatuses`** (`array of ServiceClaimStatus objects`): The status of the specific service line. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].serviceClaimStatuses[].effectiveDate`** (`string`): The date the status information is effective. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].serviceClaimStatuses[].serviceStatuses`** (`array of ServiceLineStatus objects`): The status of the service. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].serviceClaimStatuses[].statusMessage`** (`string`): Additional free-form information about the service line status. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].serviceLineDate`** (`string`): The date of the service, formatted as `YYYYMMDD`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].dependent`** (`object`): Information about a dependent who received services related to the claim. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].dependent.firstName`** (`string`): The first name of the dependent. Can be up to 35 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].dependent.lastName`** (`string`): The last name of the dependent. Can be up to 60 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].dependent.middleName`** (`string`): The middle name or initial of the dependent. Can be up to 25 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].dependent.suffix`** (`string`): The suffix of the dependent, such as Jr or III. Can be up to 10 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber`** (`object`): Information about the primary policy holder for the health plan. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.employerIdentificationNumber`** (`string`): The subscriber's employer identification number. This may be used in conjunction with a worker's compensation claim. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.firstName`** (`string`): The first name of the subscriber. Can be up to 35 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.lastName`** (`string`): The last name of the subscriber. Can be up to 60 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.memberId`** (`string`): The subscriber's member ID for their health plan. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.middleName`** (`string`): The middle name or initial of the subscriber. Can be up to 25 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.organizationName`** (`string`): The subscriber's business name. Applicable when an employer submitted a worker's compensation claim, or other situations when an employer is the subscriber. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.standardUniqueHealthIdentifierForEachIndividualInTheUnitedStates`** (`string`): Deprecated; do not use. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].subscriber.suffix`** (`string`): The suffix of the subscriber, such as Jr or III. Can be up to 10 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].providerOFServiceInformationTraceIdentifier`** (`string`): An identifier for claims related to this provider. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider`** (`object`): Information about the service provider. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.firstName`** (`string`): The provider's first name, when the provider is an individual. Can be up to 35 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.lastName`** (`string`): The provider's last name, when the provider is an individual. Can be up to 60 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.middleName`** (`string`): The provider's middle name or initial, when the provider is an individual. Can be up to 25 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.npi`** (`string`): The provider's National Provider Identifier. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.organizationName`** (`string`): The provider's business name. Can be up to 60 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.spn`** (`string`): The provider's service provider number. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.suffix`** (`string`): The provider's name suffix, when the provider is an individual. Can be up to 10 characters. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProvider.tin`** (`string`): The provider's tax identification number. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses`** (`array of ServiceProviderClaimStatus objects`): Status information for claims related to the provider. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses`** (`array of ProviderStatus objects`): The status of claims related to this provider. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses[].entityIdentifierCode`** (`string`): Entity identifier code for providers in claim status reports - Allowed values: `36`, `40`, `41`, `AY`, `PR` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses[].entityIdentifierCodeValue`** (`string`): Human-readable descriptions for provider entity identifier codes - Allowed values: `Employer`, `Receiver`, `Submitter`, `Clearinghouse`, `Payer` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses[].healthCareClaimStatusCategoryCode`** (`string`): Code indicating the status category of the `statusCode` property. Visit [277CA code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-status-category-code) for a complete list. - Allowed values: `A0`, `A1`, `A2`, `A3`, `A4`, `A5`, `A6`, `A7`, `A8`, `DR01`, `DR02`, `DR03`, `DR04`, `DR05`, `DR06`, `DR07`, `DR08`, `P0`, `P1`, `P2`, `P3`, `P4`, `P5`, `F0`, `F1`, `F2`, `F3`, `F3F`, `F3N`, `F4`, `R0`, `R1`, `R3`, `R4`, `R5`, `R6`, `R7`, `R8`, `R9`, `R10`, `R11`, `R12`, `R13`, `R14`, `R15`, `R16`, `R17`, `E0`, `E1`, `E2`, `E3`, `E4`, `D0` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses[].healthCareClaimStatusCategoryCodeValue`** (`string`): Description of the `healthCareClaimStatusCategoryCode` property. Visit [277CA code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-status-category-code) for a complete list. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses[].statusCode`** (`string`) - Allowed values: `0`, `1`, `2`, `3`, `6`, `12`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `23`, `24`, `25`, `26`, `27`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `37`, `38`, `39`, `40`, `41`, `42`, `44`, `45`, `46`, `47`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `59`, `60`, `61`, `64`, `65`, `66`, `72`, `73`, `78`, `81`, `83`, `84`, `85`, `86`, `88`, `89`, `90`, `91`, `92`, `93`, `94`, `95`, `96`, `97`, `98`, `99`, `100`, `101`, `102`, `103`, `104`, `105`, `106`, `107`, `109`, `110`, `111`, `114`, `116`, `117`, `121`, `123`, `124`, `125`, `126`, `127`, `128`, `129`, `130`, `131`, `132`, `133`, `134`, `135`, `136`, `137`, `138`, `139`, `140`, `141`, `142`, `143`, `144`, `145`, `146`, `147`, `148`, `149`, `150`, `152`, `153`, `154`, `155`, `156`, `157`, `158`, `159`, `160`, `161`, `162`, `163`, `164`, `165`, `166`, `167`, `168`, `170`, `171`, `172`, `173`, `174`, `175`, `176`, `177`, `178`, `179`, `180`, `181`, `182`, `183`, `184`, `185`, `186`, `187`, `188`, `189`, `190`, `191`, `192`, `193`, `194`, `195`, `196`, `197`, `198`, `199`, `200`, `201`, `202`, `203`, `204`, `205`, `206`, `207`, `208`, `209`, `210`, `211`, `212`, `213`, `214`, `215`, `216`, `217`, `218`, `219`, `222`, `223`, `224`, `225`, `226`, `227`, `228`, `229`, `230`, `231`, `232`, `233`, `234`, `235`, `236`, `237`, `238`, `239`, `240`, `241`, `242`, `243`, `244`, `245`, `246`, `247`, `249`, `250`, `251`, `252`, `254`, `255`, `256`, `257`, `258`, `259`, `260`, `261`, `262`, `263`, `264`, `265`, `266`, `267`, `268`, `269`, `270`, `271`, `272`, `273`, `274`, `275`, `276`, `277`, `279`, `281`, `282`, `283`, `284`, `286`, `287`, `288`, `290`, `291`, `292`, `293`, `294`, `295`, `296`, `297`, `298`, `299`, `300`, `301`, `305`, `306`, `307`, `308`, `310`, `311`, `312`, `313`, `314`, `315`, `316`, `318`, `319`, `320`, `322`, `323`, `324`, `325`, `326`, `327`, `329`, `330`, `331`, `333`, `334`, `335`, `336`, `337`, `339`, `340`, `341`, `342`, `343`, `344`, `345`, `346`, `352`, `353`, `354`, `360`, `363`, `364`, `365`, `366`, `374`, `375`, `380`, `382`, `383`, `384`, `385`, `386`, `387`, `388`, `389`, `390`, `391`, `394`, `395`, `396`, `397`, `398`, `400`, `401`, `402`, `403`, `406`, `407`, `408`, `409`, `414`, `417`, `419`, `420`, `428`, `430`, `431`, `432`, `433`, `434`, `435`, `441`, `442`, `443`, `449`, `450`, `451`, `452`, `453`, `454`, `455`, `456`, `457`, `458`, `459`, `460`, `464`, `465`, `466`, `467`, `468`, `469`, `470`, `471`, `472`, `473`, `474`, `475`, `476`, `477`, `478`, `479`, `480`, `481`, `483`, `484`, `485`, `486`, `487`, `488`, `489`, `490`, `491`, `492`, `493`, `494`, `495`, `496`, `497`, `498`, `499`, `500`, `501`, `502`, `503`, `504`, `505`, `506`, `507`, `508`, `509`, `510`, `511`, `512`, `513`, `514`, `515`, `516`, `517`, `518`, `519`, `520`, `521`, `522`, `523`, `524`, `525`, `526`, `527`, `528`, `529`, `530`, `531`, `532`, `533`, `534`, `535`, `536`, `537`, `538`, `539`, `540`, `541`, `542`, `543`, `544`, `545`, `546`, `547`, `548`, `549`, `550`, `551`, `552`, `553`, `554`, `555`, `556`, `557`, `558`, `559`, `560`, `561`, `562`, `563`, `564`, `565`, `566`, `567`, `568`, `569`, `571`, `572`, `573`, `574`, `575`, `576`, `577`, `578`, `579`, `580`, `581`, `582`, `583`, `584`, `585`, `586`, `587`, `588`, `589`, `590`, `591`, `592`, `593`, `594`, `595`, `596`, `597`, `598`, `599`, `600`, `601`, `602`, `603`, `604`, `605`, `606`, `607`, `608`, `609`, `610`, `611`, `612`, `613`, `614`, `615`, `616`, `617`, `618`, `619`, `620`, `621`, `622`, `623`, `624`, `625`, `626`, `627`, `628`, `629`, `630`, `631`, `632`, `633`, `634`, `635`, `636`, `637`, `638`, `639`, `640`, `642`, `643`, `644`, `645`, `646`, `647`, `648`, `649`, `650`, `651`, `652`, `653`, `654`, `655`, `656`, `657`, `658`, `659`, `660`, `661`, `662`, `663`, `664`, `665`, `666`, `667`, `668`, `669`, `670`, `671`, `672`, `673`, `674`, `675`, `676`, `677`, `678`, `679`, `680`, `681`, `682`, `683`, `684`, `685`, `686`, `687`, `688`, `689`, `690`, `691`, `692`, `693`, `694`, `695`, `696`, `697`, `698`, `699`, `700`, `701`, `702`, `703`, `704`, `705`, `706`, `707`, `708`, `709`, `710`, `711`, `712`, `713`, `714`, `715`, `716`, `717`, `718`, `719`, `720`, `721`, `722`, `723`, `724`, `725`, `726`, `727`, `728`, `729`, `730`, `731`, `732`, `733`, `734`, `735`, `736`, `737`, `738`, `739`, `740`, `741`, `742`, `743`, `744`, `745`, `746`, `747`, `748`, `749`, `750`, `751`, `752`, `753`, `754`, `755`, `756`, `757`, `758`, `759`, `760`, `761`, `762`, `763`, `764`, `765`, `766`, `767`, `768`, `769`, `770`, `771`, `772`, `773`, `774`, `775`, `776`, `777`, `778`, `779`, `780`, `781`, `782`, `783`, `784`, `785`, `786`, `787`, `788`, `789`, `790`, `791`, `792`, `793`, `794`, `795`, `796`, `798`, `799`, `800`, `801`, `802`, `803` - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses[].statusCodeValue`** (`string`): The description of the `statusCode`. - **`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].statusInformationEffectiveDate`** (`string`): The date the status information is effective. - **`transactions[].payers[].claimStatusTransactions[].claimTransactionBatchNumber`** (`string`): A tracking number Stedi assigns to the corresponding 837 claim. It's returned as the `claimReference.correlationId` in the response from our claim submission endpoints. You can use this value to correlate the 277CA with the original claim. - **`transactions[].payers[].claimStatusTransactions[].provider`** (`object`): Information about the provider receiving the claim status details. - **`transactions[].payers[].claimStatusTransactions[].provider.etin`** (`string`): The provider's Electronic Transmitter Identification Number. - **`transactions[].payers[].claimStatusTransactions[].provider.firstName`** (`string`): The provider's first name. Can be up to 35 characters. - **`transactions[].payers[].claimStatusTransactions[].provider.lastName`** (`string`): The provider's last name. Can be up to 60 characters. - **`transactions[].payers[].claimStatusTransactions[].provider.middleName`** (`string`): The provider's middle name or initial. Can be up to 25 characters. - **`transactions[].payers[].claimStatusTransactions[].provider.organizationName`** (`string`): The provider's business name. Can be up to 60 characters. - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses`** (`array of ProviderClaimStatus objects`): Overall status information for the claim. - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses`** (`array of ProviderStatus objects`): The status of the entire claim. - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses[].entityIdentifierCode`** (`string`): Entity identifier code for providers in claim status reports - Allowed values: `36`, `40`, `41`, `AY`, `PR` - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses[].entityIdentifierCodeValue`** (`string`): Human-readable descriptions for provider entity identifier codes - Allowed values: `Employer`, `Receiver`, `Submitter`, `Clearinghouse`, `Payer` - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses[].healthCareClaimStatusCategoryCode`** (`string`): Code indicating the status category of the `statusCode` property. Visit [277CA code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-status-category-code) for a complete list. - Allowed values: `A0`, `A1`, `A2`, `A3`, `A4`, `A5`, `A6`, `A7`, `A8`, `DR01`, `DR02`, `DR03`, `DR04`, `DR05`, `DR06`, `DR07`, `DR08`, `P0`, `P1`, `P2`, `P3`, `P4`, `P5`, `F0`, `F1`, `F2`, `F3`, `F3F`, `F3N`, `F4`, `R0`, `R1`, `R3`, `R4`, `R5`, `R6`, `R7`, `R8`, `R9`, `R10`, `R11`, `R12`, `R13`, `R14`, `R15`, `R16`, `R17`, `E0`, `E1`, `E2`, `E3`, `E4`, `D0` - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses[].healthCareClaimStatusCategoryCodeValue`** (`string`): Description of the `healthCareClaimStatusCategoryCode` property. Visit [277CA code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-status-category-code) for a complete list. - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses[].statusCode`** (`string`) - Allowed values: `0`, `1`, `2`, `3`, `6`, `12`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `23`, `24`, `25`, `26`, `27`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `37`, `38`, `39`, `40`, `41`, `42`, `44`, `45`, `46`, `47`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `59`, `60`, `61`, `64`, `65`, `66`, `72`, `73`, `78`, `81`, `83`, `84`, `85`, `86`, `88`, `89`, `90`, `91`, `92`, `93`, `94`, `95`, `96`, `97`, `98`, `99`, `100`, `101`, `102`, `103`, `104`, `105`, `106`, `107`, `109`, `110`, `111`, `114`, `116`, `117`, `121`, `123`, `124`, `125`, `126`, `127`, `128`, `129`, `130`, `131`, `132`, `133`, `134`, `135`, `136`, `137`, `138`, `139`, `140`, `141`, `142`, `143`, `144`, `145`, `146`, `147`, `148`, `149`, `150`, `152`, `153`, `154`, `155`, `156`, `157`, `158`, `159`, `160`, `161`, `162`, `163`, `164`, `165`, `166`, `167`, `168`, `170`, `171`, `172`, `173`, `174`, `175`, `176`, `177`, `178`, `179`, `180`, `181`, `182`, `183`, `184`, `185`, `186`, `187`, `188`, `189`, `190`, `191`, `192`, `193`, `194`, `195`, `196`, `197`, `198`, `199`, `200`, `201`, `202`, `203`, `204`, `205`, `206`, `207`, `208`, `209`, `210`, `211`, `212`, `213`, `214`, `215`, `216`, `217`, `218`, `219`, `222`, `223`, `224`, `225`, `226`, `227`, `228`, `229`, `230`, `231`, `232`, `233`, `234`, `235`, `236`, `237`, `238`, `239`, `240`, `241`, `242`, `243`, `244`, `245`, `246`, `247`, `249`, `250`, `251`, `252`, `254`, `255`, `256`, `257`, `258`, `259`, `260`, `261`, `262`, `263`, `264`, `265`, `266`, `267`, `268`, `269`, `270`, `271`, `272`, `273`, `274`, `275`, `276`, `277`, `279`, `281`, `282`, `283`, `284`, `286`, `287`, `288`, `290`, `291`, `292`, `293`, `294`, `295`, `296`, `297`, `298`, `299`, `300`, `301`, `305`, `306`, `307`, `308`, `310`, `311`, `312`, `313`, `314`, `315`, `316`, `318`, `319`, `320`, `322`, `323`, `324`, `325`, `326`, `327`, `329`, `330`, `331`, `333`, `334`, `335`, `336`, `337`, `339`, `340`, `341`, `342`, `343`, `344`, `345`, `346`, `352`, `353`, `354`, `360`, `363`, `364`, `365`, `366`, `374`, `375`, `380`, `382`, `383`, `384`, `385`, `386`, `387`, `388`, `389`, `390`, `391`, `394`, `395`, `396`, `397`, `398`, `400`, `401`, `402`, `403`, `406`, `407`, `408`, `409`, `414`, `417`, `419`, `420`, `428`, `430`, `431`, `432`, `433`, `434`, `435`, `441`, `442`, `443`, `449`, `450`, `451`, `452`, `453`, `454`, `455`, `456`, `457`, `458`, `459`, `460`, `464`, `465`, `466`, `467`, `468`, `469`, `470`, `471`, `472`, `473`, `474`, `475`, `476`, `477`, `478`, `479`, `480`, `481`, `483`, `484`, `485`, `486`, `487`, `488`, `489`, `490`, `491`, `492`, `493`, `494`, `495`, `496`, `497`, `498`, `499`, `500`, `501`, `502`, `503`, `504`, `505`, `506`, `507`, `508`, `509`, `510`, `511`, `512`, `513`, `514`, `515`, `516`, `517`, `518`, `519`, `520`, `521`, `522`, `523`, `524`, `525`, `526`, `527`, `528`, `529`, `530`, `531`, `532`, `533`, `534`, `535`, `536`, `537`, `538`, `539`, `540`, `541`, `542`, `543`, `544`, `545`, `546`, `547`, `548`, `549`, `550`, `551`, `552`, `553`, `554`, `555`, `556`, `557`, `558`, `559`, `560`, `561`, `562`, `563`, `564`, `565`, `566`, `567`, `568`, `569`, `571`, `572`, `573`, `574`, `575`, `576`, `577`, `578`, `579`, `580`, `581`, `582`, `583`, `584`, `585`, `586`, `587`, `588`, `589`, `590`, `591`, `592`, `593`, `594`, `595`, `596`, `597`, `598`, `599`, `600`, `601`, `602`, `603`, `604`, `605`, `606`, `607`, `608`, `609`, `610`, `611`, `612`, `613`, `614`, `615`, `616`, `617`, `618`, `619`, `620`, `621`, `622`, `623`, `624`, `625`, `626`, `627`, `628`, `629`, `630`, `631`, `632`, `633`, `634`, `635`, `636`, `637`, `638`, `639`, `640`, `642`, `643`, `644`, `645`, `646`, `647`, `648`, `649`, `650`, `651`, `652`, `653`, `654`, `655`, `656`, `657`, `658`, `659`, `660`, `661`, `662`, `663`, `664`, `665`, `666`, `667`, `668`, `669`, `670`, `671`, `672`, `673`, `674`, `675`, `676`, `677`, `678`, `679`, `680`, `681`, `682`, `683`, `684`, `685`, `686`, `687`, `688`, `689`, `690`, `691`, `692`, `693`, `694`, `695`, `696`, `697`, `698`, `699`, `700`, `701`, `702`, `703`, `704`, `705`, `706`, `707`, `708`, `709`, `710`, `711`, `712`, `713`, `714`, `715`, `716`, `717`, `718`, `719`, `720`, `721`, `722`, `723`, `724`, `725`, `726`, `727`, `728`, `729`, `730`, `731`, `732`, `733`, `734`, `735`, `736`, `737`, `738`, `739`, `740`, `741`, `742`, `743`, `744`, `745`, `746`, `747`, `748`, `749`, `750`, `751`, `752`, `753`, `754`, `755`, `756`, `757`, `758`, `759`, `760`, `761`, `762`, `763`, `764`, `765`, `766`, `767`, `768`, `769`, `770`, `771`, `772`, `773`, `774`, `775`, `776`, `777`, `778`, `779`, `780`, `781`, `782`, `783`, `784`, `785`, `786`, `787`, `788`, `789`, `790`, `791`, `792`, `793`, `794`, `795`, `796`, `798`, `799`, `800`, `801`, `802`, `803` - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses[].statusCodeValue`** (`string`): The description of the `statusCode`. - **`transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].statusInformationEffectiveDate`** (`string`): The date the claim status information is effective, formatted as `YYYYMMDD`. - **`transactions[].payers[].entityIdentifierCode`** (`string`): Entity identifier code for payers in claim status reports - Allowed values: `AY`, `PR` - **`transactions[].payers[].entityIdentifierCodeValue`** (`string`): Human-readable descriptions for payer entity identifier codes - Allowed values: `Clearinghouse`, `Payer` - **`transactions[].payers[].etin`** (`string`): The payer's Electronic Transmitter Identification Number. - **`transactions[].payers[].federalTaxpayerIdentificationNumber`** (`string`): The payer's Federal Taxpayer Identification Number. - **`transactions[].payers[].organizationName`** (`string`): The payer or intermediary clearinghouse's business name. - **`transactions[].payers[].payerContactInformation`** (`object`): The payer's business contact information. - **`transactions[].payers[].payerContactInformation.contactMethods`** (`array of ContactMethods objects`): Each contact will have a single property set, except for phone with extension. - **`transactions[].payers[].payerContactInformation.contactMethods[].electronicDataInterChangeAccessNumber`** (`string`): The Electronic Data Interchange Access Number. - **`transactions[].payers[].payerContactInformation.contactMethods[].email`** (`string`): The email address. - **`transactions[].payers[].payerContactInformation.contactMethods[].fax`** (`string`): The fax number. - **`transactions[].payers[].payerContactInformation.contactMethods[].phone`** (`string`): The telephone number including the area code (if applicable). Phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`transactions[].payers[].payerContactInformation.contactMethods[].phoneExtension`** (`string`): The telephone extension, if applicable. - **`transactions[].payers[].payerContactInformation.contactName`** (`string`): The name of the contact person or entity. - **`transactions[].payers[].payerIdentification`** (`string`): The payer's unique identifier. - **`transactions[].referenceIdentification`** (`string`): A number the payer assigns to the transaction to identify it within their system. - **`transactions[].transactionSetCreationDate`** (`string`): The date the payer created the transaction, formatted as `YYYYMMDD`. - **`transactions[].transactionSetCreationTime`** (`string`): The time the payer created the transaction, expressed in 24-hour clock time. May be formatted as HHMM, HHMMSS, HHMMSSD, or HHMMSSDD, where H = hours (00-23), M = minutes (00-59), S = integer seconds (00-59) and DD = decimal seconds; decimal seconds are expressed as follows: D = tenths (0-9) and DD = hundredths (00-99). **Example:** ```json { "meta": { "transactionId": "71716ec5-0e96-462f-bb77-869941bb27ab" }, "transactions": [ { "controlNumber": "1001", "payers": [ { "claimStatusTransactions": [ { "claimStatusDetails": [ { "patientClaimStatusDetails": [ { "claims": [ { "claimStatus": { "claimServiceBeginDate": "20240101", "claimServiceEndDate": "20240101", "clearinghouseTraceNumber": "01J1SNT1FQC8ABWD44MAMBDYKA", "informationClaimStatuses": [ { "informationStatuses": [ { "entityIdentifierCode": "QC", "entityIdentifierCodeValue": "Patient", "healthCareClaimStatusCategoryCode": "A2", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Acceptance into adjudication system - The claim/encounter has been accepted into the adjudication system.", "statusCode": "20", "statusCodeValue": "Accepted for processing." }, { "entityIdentifierCode": "PR", "entityIdentifierCodeValue": "Payer", "healthCareClaimStatusCategoryCode": "A1", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Receipt - The claim/encounter has been received. This does not mean that the claim has been accepted for adjudication.", "statusCode": "19", "statusCodeValue": "Entity acknowledges receipt of claim/encounter." }, { "entityIdentifierCode": "85", "entityIdentifierCodeValue": "Billing Provider", "healthCareClaimStatusCategoryCode": "A2", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Acceptance into adjudication system - The claim/encounter has been accepted into the adjudication system.", "statusCode": "20", "statusCodeValue": "Accepted for processing." } ], "statusInformationActionCode": "WQ", "statusInformationActionCodeValue": "Accept", "statusInformationEffectiveDate": "20240702", "totalClaimChargeAmount": "109.20" } ], "patientAccountNumber": "11122233", "referencedTransactionTraceNumber": "11122233" } } ], "subscriber": { "firstName": "JOHN", "lastName": "ANON", "memberId": "U7777788888" } } ], "providerOFServiceInformationTraceIdentifier": "0", "serviceProvider": { "npi": "1235600834", "organizationName": "THERAPY ASSOCIATES" } } ], "claimTransactionBatchNumber": "01J1SNRJ0FP4ZE6EFWM4G4XB3N", "provider": { "etin": "1235600834", "organizationName": "TEST DATA HEALTH SERVICES, INC." }, "providerClaimStatuses": [ { "providerStatuses": [ { "healthCareClaimStatusCategoryCode": "A1", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Receipt - The claim/encounter has been received. This does not mean that the claim has been accepted for adjudication.", "statusCode": "20", "statusCodeValue": "Accepted for processing." } ], "statusInformationEffectiveDate": "20240702" } ] } ], "entityIdentifierCode": "PR", "entityIdentifierCodeValue": "Payer", "organizationName": "COMPREHENSIVE HEALTH PLAN", "payerIdentification": "CHP12345" } ], "referenceIdentification": "1511096803", "transactionSetCreationDate": "20240702", "transactionSetCreationTime": "0815" } ] } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # 835 ERA Report Source: https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-reports-835 The 835 Electronic Remittance Advice (ERA) contains details about payments for specific services and explanations for any adjustments or denials. This endpoint retrieves processed 835 ERA transactions from Stedi. 1. Call this endpoint with the `transactionId` of the 835 ERA you want to retrieve. You can retrieve the transaction ID through event destinations or through Stedi's API. [Learn more](/healthcare/receive-claim-responses#discover-processed-responses) 2. The endpoint returns the 835 ERA in JSON format. When an 835 ERA response exceeds the size limit, Stedi returns an HTTP `413` error instead of the ERA. You can include the `Accept-Encoding: gzip` header in your request to compress the response. Note that the payer won't send 835 ERAs for rejected claims. If a claim is rejected in a 277CA claim acknowledgment, there's no adjudication or payment information to report. ## Claim status [#claim-status] You can't reliably determine a claim's status based on the amount paid in an 835 ERA. There are many instances in which a claim is accepted and the total amount paid is $0. For example, in Value-Based Care (VBC) scenarios, line item rates are usually $0, and providers are paid a flat rate per month or for a complete bundle of services. Use the [Real-Time Claim Status API](/healthcare/api-reference/post-healthcare-claim-status) to check the claim's status instead. ## API Specification Retrieve an 835 Electronic Remittance Advice (ERA) in JSON format **Endpoint:** `GET /change/medicalnetwork/reports/v2/{transactionId}/835` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`transactionId`** (path) (required): A unique identifier for the processed 835 transaction within Stedi. This ID is included in the transaction processed event, which you can receive automatically through Stedi [webhooks](https://www.stedi.com/docs/healthcare/configure-webhooks). You can also retrieve it through the [Poll Transactions endpoint](https://www.stedi.com/docs/healthcare/api-reference/get-poll-transactions). - Type: `string` ### Responses #### 200 ConvertReport835 200 response **Schema:** `ConvertReport835ResponseContent` **Properties:** - **`meta`** (`object`) (required): Metadata that helps Stedi track and debug the response. - **`meta.applicationMode`** (`string`): Whether this is a test or production ERA. - **`meta.senderId`** (`string`): An identifier for the most recent sender of the ERA. This is usually not the original sender, so this value is unlikely to be a payer ID. When Stedi processes and delivers ERAs through the clearinghouse, this value is always `STEDI`. - **`meta.traceId`** (`string`): Not currently used. - **`meta.transactionId`** (`string`): The Stedi transaction identifier. - **`transactions`** (`array of ClaimPaymentAdviceResponse objects`): The payer's 835 response. - **`transactions[].controlNumber`** (`string`): The control number the payer provided in the claim payment response. This is used to identify the transaction. - **`transactions[].detailInfo`** (`array of DetailInfo objects`): Detailed information about claims in this payment advice. - **`transactions[].detailInfo[].assignedNumber`** (`string`): A unique ID assigned to identify this set of claim information within the response. - **`transactions[].detailInfo[].paymentInfo`** (`array of PaymentInfo objects`): Information relevant to the claim and claim payment, including the subscriber, providers, and service lines. Note that the amount paid may not match the claim amount, even when the claim was not denied. This can happen for several reasons, including adjustments and corrected balances due from other claims. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments`** (`array of ClaimAdjustments objects`): Adjustments applied to this claim. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentAmount1`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentAmount2`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentAmount3`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentAmount4`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentAmount5`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentAmount6`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentQuantity1`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentQuantity2`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentQuantity3`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentQuantity4`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentQuantity5`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentQuantity6`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReason1`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReason2`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReason3`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReason4`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReason5`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReason6`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReasonCode1`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReasonCode2`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReasonCode3`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReasonCode4`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReasonCode5`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReasonCode6`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].claimAdjustmentGroupCode`** (`string`): Defines the category of adjustment reason codes that explain why a claim payment was adjusted. These codes categorize adjustments into contractual obligations, payer-initiated reductions, patient responsibilities, and other adjustments. - Allowed values: `CO`, `OA`, `PI`, `PR` - **`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].claimAdjustmentGroupCodeValue`** (`string`): The description of the `claimAdjustmentGroupCode`. - **`transactions[].detailInfo[].paymentInfo[].claimContactInformation`** (`array of ReportsContactInformation objects`): Contact information for claim-related communications. - **`transactions[].detailInfo[].paymentInfo[].claimContactInformation[].contactMethods`** (`array of ContactMethod objects`) - **`transactions[].detailInfo[].paymentInfo[].claimContactInformation[].contactMethods[].email`** (`string`): The email address. - **`transactions[].detailInfo[].paymentInfo[].claimContactInformation[].contactMethods[].fax`** (`string`): The fax number. - **`transactions[].detailInfo[].paymentInfo[].claimContactInformation[].contactMethods[].phone`** (`string`): The telephone number including the area code (if applicable). Phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`transactions[].detailInfo[].paymentInfo[].claimContactInformation[].contactMethods[].phoneExtension`** (`string`): The telephone extension, if applicable. - **`transactions[].detailInfo[].paymentInfo[].claimContactInformation[].contactName`** (`string`): The name of the contact person or entity. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo`** (`object`): Claim payment information for the payment info structure. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.claimFilingIndicatorCode`** (`string`): Identifies the type of health plan or insurance coverage under which the claim was filed. These codes indicate the specific type of insurance arrangement, government program, or coverage type that applies to the claim. - Allowed values: `12`, `13`, `14`, `15`, `16`, `17`, `AM`, `CH`, `DS`, `HM`, `LI`, `LM`, `MA`, `MB`, `MC`, `OF`, `TV`, `VA`, `WC`, `ZZ` - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.claimFrequencyCode`** (`string`): A code identifying the frequency of the claim. It matches what the payer received in the original claim. Visit [Bill Type Frequency Codes](https://www.nubc.org/system/files/media/file/2019/06/billTypeFrequencyCodes837.pdf) for a complete list and definitions. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.claimPaymentAmount`** (`string`): The total amount of the claim payment, expressed as a decimal. This value can be positive, zero, or negative. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.claimStatusCode`** (`string`): Indicates the status of the claim after adjudication by the payer. These codes determine whether the claim was processed as primary, secondary, tertiary, denied, forwarded to other payers, or represents special processing situations like reversals or predeterminations. - Allowed values: `1`, `2`, `3`, `4`, `19`, `20`, `21`, `22`, `23`, `25` - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.diagnosisRelatedGroupDRGCode`** (`string`): Code indicating a patient's diagnosis group based on their medical symptoms. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.diagnosisRelatedGroupDRGWeight`** (`string`): The adjudicated diagnosis-related group (DRG) weight. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.dischargeFraction`** (`string`): The adjudicated discharge fraction. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.facilityTypeCode`** (`string`): A code identifying where services were or may be performed. This is the [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for Professional or Dental Services. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.patientControlNumber`** (`string`): The patient control number provided in the original claim. You can use this value to correlate the payer's response with the original claim. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.patientResponsibilityAmount`** (`string`): The amount the patient is responsible for paying. This can include the deductible, non-covered services, co-pay, and co-insurance. This is not used for reversals. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.payerClaimControlNumber`** (`string`): The payer's internal control number for the claim. - **`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.totalClaimChargeAmount`** (`string`): The total amount of submitted charges for this claim, expressed as a decimal. This can be positive, zero, or negative. For example, this may contain a negative charge for a reversal claim. - **`transactions[].detailInfo[].paymentInfo[].claimReceivedDate`** (`string`): The date the claim was received by the payer, formatted as `YYYYMMDD`. - **`transactions[].detailInfo[].paymentInfo[].claimStatementPeriodEnd`** (`string`): The claim period end date in ISO 8601 format (YYYY-MM-DD). This format is intentionally inconsistent with other date properties to maintain backwards compatibility. - **`transactions[].detailInfo[].paymentInfo[].claimStatementPeriodStart`** (`string`): The claim period start date in ISO 8601 format (YYYY-MM-DD). This format is intentionally inconsistent with other date properties to maintain backwards compatibility. If the response doesn’t include a `claimStatementPeriodEnd`, you should assume the end date is the same as the start date. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation`** (`object`): Additional information about the claim payment. All values are expressed as decimals. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.coverageAmount`** (`string`): The total covered charges. This is the sum of the original submitted provider charges that are considered for payment under the health plan. This excludes charges considered not covered, but includes reductions to payments of covered services, such as patient deductibles. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.discountAmount`** (`string`): This is the Prompt Pay Discount Amount. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.federalMedicareOrMedicaidPaymentMandateCategory1`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 1. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.federalMedicareOrMedicaidPaymentMandateCategory2`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 2. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.federalMedicareOrMedicaidPaymentMandateCategory3`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 3. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.federalMedicareOrMedicaidPaymentMandateCategory4`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 4. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.federalMedicareOrMedicaidPaymentMandateCategory5`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 5. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.interest`** (`string`): The interest amount. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.negativeLedgerBalance`** (`string`): The negative ledger balance. Only used by Medicare Part A and Medicare Part B. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.patientAmountPaid`** (`string`): The amount the patient has already paid. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.perDayLimit`** (`string`): The per day limit. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.tax`** (`string`): The total taxes. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformation.totalClaimBeforeTaxes`** (`string`): The total claim amount before taxes. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities`** (`object`): Additional quantity information about the claim payment. All values are expressed as decimals. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.coInsuredActual`** (`string`): The actual amount of co-insurance designated by the health plan. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.coveredActual`** (`string`): The number of days covered. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.federalMedicareOrMedicaidPaymentMandateCategory1`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 1. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.federalMedicareOrMedicaidPaymentMandateCategory2`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 2. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.federalMedicareOrMedicaidPaymentMandateCategory3`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 3. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.federalMedicareOrMedicaidPaymentMandateCategory4`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 4. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.federalMedicareOrMedicaidPaymentMandateCategory5`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 5. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.lifeTimeReserveActual`** (`string`): The actual lifetime reserve days. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.lifeTimeReserveEstimated`** (`string`): The estimated lifetime reserve days. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.nonCoveredEstimated`** (`string`): The non-covered estimated amount. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.notReplacedBloodUnits`** (`string`): The number of non-replaced blood units. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.outlierDays`** (`string`): The number of outlier days. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.prescription`** (`string`): The prescription. - **`transactions[].detailInfo[].paymentInfo[].claimSupplementalInformationQuantities.visits`** (`string`): The number of visits. - **`transactions[].detailInfo[].paymentInfo[].correctedPatientOrInsuredName`** (`object`): Used to provide corrected information about the insured. - **`transactions[].detailInfo[].paymentInfo[].correctedPatientOrInsuredName.firstName`** (`string`): The insured's first name. - **`transactions[].detailInfo[].paymentInfo[].correctedPatientOrInsuredName.insuredsChangedUniqueIdentificationNumber`** (`string`): The insured's changed unique identification number. - **`transactions[].detailInfo[].paymentInfo[].correctedPatientOrInsuredName.lastName`** (`string`): The insured's last name. - **`transactions[].detailInfo[].paymentInfo[].correctedPatientOrInsuredName.middleName`** (`string`): The insured's middle name or initial of the insured. - **`transactions[].detailInfo[].paymentInfo[].correctedPatientOrInsuredName.organizationName`** (`string`): The business name of the insured when they are not an individual. - **`transactions[].detailInfo[].paymentInfo[].correctedPatientOrInsuredName.suffix`** (`string`): The insured's name suffix, such as Jr. or III. - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer`** (`object`): Information about the corrected priority payer. Used when the current payer believes that another payer has priority for making a payment and the claim is not being automatically transferred to that payer. - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer.blueCrossBlueShieldAssociationPlanCode`** (`string`): The provider's Blue Cross Blue Shield Association Plan Code. - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer.centersForMedicareAndMedicaidServicesPlanId`** (`string`): Used to report the provider's Health Plan ID (HPID) or Other Entity Identifier (OEID). - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer.nationalAssociationOfInsuranceCommissionersIdentification`** (`string`): The provider's National Association of Insurance Commissioners (NAIC) number. - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer.organizationName`** (`string`): The provider's business name (when the provider is not an individual) or the provider's last name (when the provider is an individual). - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer.payorId`** (`string`): The provider's Payer Identification number. - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer.pharmacyProcessorNumber`** (`string`): The provider's Pharmacy Processor Number. - **`transactions[].detailInfo[].paymentInfo[].correctedPriorityPayer.taxId`** (`string`): The provider's Federal Tax Identification Number. - **`transactions[].detailInfo[].paymentInfo[].coverageExpirationDate`** (`string`): The expiration date of the patient's coverage, formatted as `YYYYMMDD`. - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier`** (`object`): Information about the crossover carrier. The crossover carrier is defined as any payer to which the claim is transferred for further payment after the current payer has finalized it. - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier.blueCrossBlueShieldAssociationPlanCode`** (`string`): The provider's Blue Cross Blue Shield Association Plan Code. - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier.centersForMedicareAndMedicaidServicesPlanId`** (`string`): Used to report the provider's Health Plan ID (HPID) or Other Entity Identifier (OEID). - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier.nationalAssociationOfInsuranceCommissionersIdentification`** (`string`): The provider's National Association of Insurance Commissioners (NAIC) number. - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier.organizationName`** (`string`): The provider's business name (when the provider is not an individual) or the provider's last name (when the provider is an individual). - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier.payorId`** (`string`): The provider's Payer Identification number. - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier.pharmacyProcessorNumber`** (`string`): The provider's Pharmacy Processor Number. - **`transactions[].detailInfo[].paymentInfo[].crossoverCarrier.taxId`** (`string`): The provider's Federal Tax Identification Number. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication`** (`object`): Information about the adjudication of inpatient claims. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimDRGAmount`** (`string`): The Diagnosis Related Group (DRG) amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimDisproportionateShareAmount`** (`string`): The Disproportionate Share amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimIndirectTeachingAmount`** (`string`): The indirect teaching amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimMSPPassThroughAmount`** (`string`): The Medicare Secondary Payer (MSP) pass-through amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPPSCapitalAmount`** (`string`): The total Prospective Payment System (PPS) capital amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPPSCapitalOutlierAmount`** (`string`): The Prospective Payment System (PPS) Capital Outlier amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPaymentRemarkCode1`** (`string`): The [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPaymentRemarkCode2`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPaymentRemarkCode3`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPaymentRemarkCode4`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPaymentRemarkCode5`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.costReportDayCount`** (`string`): The number of cost report days. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.coveredDaysOrVisitsCount`** (`string`): The number of days or visits covered by the health plan. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.lifetimePsychiatricDaysCount`** (`string`): The number of psychiatric days for the patient's lifetime. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.nonPayableProfessionalComponentAmount`** (`string`): The professional component amount billed but not payable. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.oldCapitalAmount`** (`string`): The old capital amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsCapitalDSHDRGAmount`** (`string`): The Prospective Payment System (PPS) capital, disproportionate share, hospital Diagnosis Related Group (DRG) amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsCapitalExceptionAmount`** (`string`): The capital exception amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsCapitalFSPDRGAmount`** (`string`): The Prospective Payment System (PPS) capital, federal specific portion, Diagnosis Related Group (DRG) amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsCapitalHSPDRGAmount`** (`string`): The Prospective Payment System (PPS) capital, hospital specific portion, Diagnosis Related Group (DRG), amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsCapitalIMEAmount`** (`string`): The Prospective Payment System (PPS) capital indirect medical education claim amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsOperatingFederalSpecificDRGAmount`** (`string`): The federal specific Diagnosis Related Group (DRG) amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsOperatingHospitalSpecificDRGAmount`** (`string`): The hospital specific Diagnosis Related Group (DRG) Amount. - **`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.ppsOperatingOutlierAmount`** (`string`): The Prospective Payment System (PPS) Operating Outlier amount, expressed as a decimal. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification`** (`object`): Additional reference numbers to identify the specific claim. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.adjustedRePricedClaimReferenceNumber`** (`string`): The adjusted repriced claim reference number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.authorizationNumber`** (`string`): An authorization number assigned by the adjudication process that was not provided prior to the services. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.classOfContractCode`** (`string`): The class of contract code. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.classOfContractCodes`** (`array of strings`): A list of class of contract codes when multiple codes are applicable. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.employeeIdentificationNumber`** (`string`): The employee identification number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.groupNumber`** (`string`): The other insured group number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.groupOrPolicyNumber`** (`string`): The group or policy number for the health plan. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.insurancePolicyNumber`** (`string`): The insurance policy number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.medicalRecordIdentificationNumber`** (`string`): The medical record identification number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.memberIdentificationNumber`** (`string`): The health plan member identification number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.originalReferenceNumber`** (`string`): The reference number for the original claim. This is included for correction claims. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.predeterminationOfBenefitsIdentificationNumber`** (`string`): The predetermination of benefits identification number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.rePricedClaimReferenceNumber`** (`string`): The repriced claim reference number. - **`transactions[].detailInfo[].paymentInfo[].otherClaimRelatedIdentification.ssn`** (`string`): The social security number (SSN). - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber`** (`object`): Information about the other subscriber, when a corrected priority payer has been identified. - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.firstName`** (`string`): The subscriber's first name. - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.lastName`** (`string`): The subscriber's last name. - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.memberId`** (`string`): The subscriber's member ID for their health plan. - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.middleName`** (`string`): The subscriber's middle name or initial. - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.organizationName`** (`string`): The subscriber's business name, if the subscriber is not an individual. - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.standardUniqueHealthIdentifierForEachIndividualInTheUnitedStates`** (`string`): Deprecated - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.suffix`** (`string`): The subscriber's name suffix, such as Jr. or III. - **`transactions[].detailInfo[].paymentInfo[].otherSubscriber.taxId`** (`string`): The subscriber's Federal Taxpayer's Identification Number. Only used when the subscriber is a business entity and not an individual. - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication`** (`object`): Information about the adjudication of claims not related to an inpatient setting. - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimESRDPaymentAmount`** (`string`): The End Stage Renal Disease (ESRD) payment amount. - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimHCPCSPayableAmount`** (`string`): The claim Health Care Financing Administration Common Procedural Coding System (HCPCS) payable amount, expressed as a decimal. - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimPaymentRemarkCode1`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimPaymentRemarkCode2`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimPaymentRemarkCode3`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimPaymentRemarkCode4`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimPaymentRemarkCode5`** (`string`): A [Claim Payment Remark Code](https://x12.org/codes/remittance-advice-remark-codes). - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.nonPayableProfessionalComponentAmount`** (`string`): The professional component amount billed but not payable. - **`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.reimbursementRate`** (`string`): The reimbursement rate, expressed as a decimal. - **`transactions[].detailInfo[].paymentInfo[].patientName`** (`object`): Information about the individual who received medical services. - **`transactions[].detailInfo[].paymentInfo[].patientName.firstName`** (`string`): The patient's first name. - **`transactions[].detailInfo[].paymentInfo[].patientName.healthInsuranceClaimNumber`** (`string`): The patient's Health Insurance Claim (HIC) Number. - **`transactions[].detailInfo[].paymentInfo[].patientName.lastName`** (`string`): The patient's last name. - **`transactions[].detailInfo[].paymentInfo[].patientName.medicaidRecipientIdentificationNumber`** (`string`): The patient's Medicaid Recipient Identification Number. - **`transactions[].detailInfo[].paymentInfo[].patientName.memberId`** (`string`): The patient's member ID number for their health plan. - **`transactions[].detailInfo[].paymentInfo[].patientName.middleName`** (`string`): The patient's middle name or initial. - **`transactions[].detailInfo[].paymentInfo[].patientName.ssn`** (`string`): The patient's Social Security Number (SSN). - **`transactions[].detailInfo[].paymentInfo[].patientName.standardUniqueHealthIdentifierForEachIndividualInTheUnitedStates`** (`string`): Deprecated. - **`transactions[].detailInfo[].paymentInfo[].patientName.suffix`** (`string`): The patient's name suffix, such as Jr or III. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider`** (`object`): Information about the provider who rendered the services. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.blueCrossProviderNumber`** (`string`): The rendering provider's Blue Cross Provider Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.blueShieldProviderNumber`** (`string`): The rendering provider's Blue Shield Provider Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.firstName`** (`string`): The rendering provider's first name. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.lastName`** (`string`): The rendering provider's last name. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.medicaidProviderNumber`** (`string`): The rendering provider's Medicare Provider Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.middleName`** (`string`): The rendering provider's middle name or initial. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.npi`** (`string`): The rendering provider's National Provider Identifier (NPI). - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.organizationName`** (`string`): The rendering provider's business name. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.providerCommercialNumber`** (`string`): The rendering provider's Provider Commercial Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.stateLicenseNumber`** (`string`): The rendering provider's State License Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.suffix`** (`string`): The rendering provider's name suffix, such as Jr. or III. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.taxId`** (`string`): The rendering provider's Federal Taxpayer Identification Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProvider.uniquePhysicianIdentificationNumber`** (`string`): Deprecated; replaced by NPI in 2007. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification`** (`object`): Additional identifiers for the rendering provider. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.blueCrossProviderNumber`** (`string`): The rendering provider's Blue Cross Provider Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.blueShieldProviderNumber`** (`string`): The rendering provider's Blue Shield Provider Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.champusIdentificationNumber`** (`string`): The rendering provider's CHAMPUS Identification Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.facilityIdNumber`** (`string`): The rendering provider's Facility ID Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.locationNumber`** (`string`): The rendering provider's Location Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.medicaidProviderNumber`** (`string`): The rendering provider's Medicaid Provider Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.medicareProviderNumber`** (`string`): The rendering provider's Medicare Provider Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.nationalCouncilForPrescriptionDrugProgramPharmacyNumber`** (`string`): The rendering provider's National Council for Prescription Drug Program Pharmacy Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.providerCommercialNumber`** (`string`): The rendering provider's Provider Commercial Number. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.providerUPINNumber`** (`string`): Deprecated; replaced by NPI in 2007. - **`transactions[].detailInfo[].paymentInfo[].renderingProviderIdentification.stateLicenseNumber`** (`string`): The rendering provider's State License Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines`** (`array of ClaimPaymentAdviceServiceLines objects`): Service lines included in this claim. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCareCheckRemarkCodes`** (`array of HealthCareCheckRemarkCodes objects`): Healthcare check remark codes for this service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCareCheckRemarkCodes[].codeListQualifierCode`** (`string`): Code identifying the specific industry code list containing the `remarkCode`. Can be `HE` - Claim Payment Remark Codes or `RX` - National Council for Prescription Drug Programs Reject/Payment Codes. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCareCheckRemarkCodes[].codeListQualifierCodeValue`** (`string`): The description of the `codeListQualifierCode`. Can be `Claim Payment Remark Codes` or `National Council for Prescription Drug Programs Reject/Payment Codes`. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCareCheckRemarkCodes[].remark`** (`string`): The human readable description of the remark code. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCareCheckRemarkCodes[].remarkCode`** (`string`): The code identifying the specific remark. This property can either be a [Remittance Advice Remark Code (RARC)](https://x12.org/codes/remittance-advice-remark-codes) (`codeListQualifierCode` set to `HE`) or a National Council for Prescription Drug Programs Reject/Payment Code (`codeListQualifierCode` set to `RX`). - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCarePolicyIdentification`** (`array of HealthCarePolicyIdentification objects`): Healthcare policy identification for this service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCarePolicyIdentification[].policyFormIdentifyingNumber`** (`string`): The identifying number for the policy form. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].lineItemControlNumber`** (`string`): The `providerControlNumber` submitted in the original claim to identify the service line. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation`** (`object`): Identifiers for the provider who rendered this service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.blueCrossProviderNumber`** (`string`): The rendering provider's Blue Cross Provider Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.blueShieldProviderNumber`** (`string`): The rendering provider's Blue Shield Provider Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.champusIdentificationNumber`** (`string`): The rendering provider's CHAMPUS Identification Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.facilityIdNumber`** (`string`): The rendering provider's Facility ID Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.federalTaxpayerIdentificationNumber`** (`string`): The rendering provider's Federal Taxpayer Identification Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.medicaidProviderNumber`** (`string`): The rendering provider's Medicaid Provider Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.medicareProviderNumber`** (`string`): The rendering provider's Medicare Provider Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.nationalCouncilForPrescriptionDrugProgramPharmacyNumber`** (`string`): The rendering provider's National Council for Prescription Drug Programs Pharmacy Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.npi`** (`string`): The rendering provider's National Provider Identifier (NPI). - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.providerCommercialNumber`** (`string`): The Provider Commercial Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.providerUPINNumber`** (`string`): Deprecated; replaced by NPI in 2007. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.ssn`** (`string`): The rendering provider's Social Security Number (SSN). - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].renderingProviderInformation.stateLicenseNumber`** (`string`): The rendering provider's State License Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments`** (`array of ClaimAdjustments objects`): Adjustments applied to this service line. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentAmount1`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentAmount2`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentAmount3`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentAmount4`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentAmount5`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentAmount6`** (`string`): The amount of the adjustment. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentQuantity1`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentQuantity2`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentQuantity3`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentQuantity4`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentQuantity5`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentQuantity6`** (`string`): The units of service being adjusted. A positive value decreases the covered days and a negative number increases the covered days. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReason1`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReason2`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReason3`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReason4`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReason5`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReason6`** (`string`): A description identifying the detailed reason the adjustment was made. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReasonCode1`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReasonCode2`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReasonCode3`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReasonCode4`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReasonCode5`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReasonCode6`** (`string`): A code identifying the detailed reason the adjustment was made. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].claimAdjustmentGroupCode`** (`string`): Defines the category of adjustment reason codes that explain why a claim payment was adjusted. These codes categorize adjustments into contractual obligations, payer-initiated reductions, patient responsibilities, and other adjustments. - Allowed values: `CO`, `OA`, `PI`, `PR` - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].claimAdjustmentGroupCodeValue`** (`string`): The description of the `claimAdjustmentGroupCode`. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceDate`** (`string`): The date the service was rendered, formatted as `YYYYMMDD`. Used for single-day services. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceEndDate`** (`string`): The date the service ended, formatted as `YYYYMMDD`. Used for multi-day services. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification`** (`object`): Additional identifiers related to the service line. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.ambulatoryPatientGroupNumber`** (`string`): The service line's Ambulatory Patient Group (APG) Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.ambulatoryPaymentClassification`** (`string`): The service line's Ambulatory Payment Classification Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.attachmentCode`** (`string`): The service line's Attachment Code. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.authorizationNumber`** (`string`): The service line's Authorization Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.locationNumber`** (`string`): The payer's identification for the provider location. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.preDeterminationOfBenefitsIdentificationNumber`** (`string`): The service line's Predetermination of Benefits Identification Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.priorAuthorizationNumber`** (`string`): The service line's Prior Authorization Number. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceIdentification.rateCodeNumber`** (`string`): The service line's Rate code number, a percentage that reflects the Ambulatory Surgical Center (ASC) rate for Medicare. This is either 0, 50, 100, or 150. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation`** (`object`): Payment and control information about a provider for a particular service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.adjudicatedProcedureCode`** (`string`): The adjudicated procedure code - an identifying number for a product or service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.adjudicatedProcedureModifierCodes`** (`array of strings`): A list of up to four modifiers that identify special circumstances related to the product or service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.lineItemChargeAmount`** (`string`): The submitted service charge, expressed as a decimal. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.lineItemProviderPaymentAmount`** (`string`): The amount paid for the service, expressed as a decimal. This amount is calculated as follows: `servicePaymentInformation.lineItemProviderPaymentAmount = servicePaymentInformation.lineItemChargeAmount - (sum(serviceAdjustments[].adjustmentAmount1) + sum(serviceAdjustments[].adjustmentAmount2) + sum(serviceAdjustments[].adjustmentAmount3) + sum(serviceAdjustments[].adjustmentAmount4) + sum(serviceAdjustments[].adjustmentAmount5) + sum(serviceAdjustments[].adjustmentAmount6))` All properties in the formula are within a single `transactions[].detailInfo[].paymentInfo[].serviceLines` array entry. Note that `serviceAdjustments` is an object array that could contain up to 99 entries, each with up to 6 adjustment amounts in separate properties. This allows for up to 594 total adjustments. Adjustments can be either positive or negative. When the adjustment amounts are positive, the payment decreases. When the adjustment amounts are negative, the payment amount increases, and will be larger than the `lineItemChargeAmount`. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.nationalUniformBillingCommitteeRevenueCode`** (`string`): The National Uniform Billing Committee Revenue Code. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.originalUnitsOfServiceCount`** (`string`): The original number of units of service submitted, expressed as a decimal. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.productOrServiceIDQualifier`** (`string`): Identifies the coding system or classification used to describe medical products, services, or procedures. These qualifiers specify which standardized code set is being used to identify the healthcare service or product. - Allowed values: `HC`, `AD`, `ER`, `IV`, `N4`, `NU`, `WK` - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.productOrServiceIDQualifierValue`** (`string`): The description of the `productOrServiceIDQualifier`. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.submittedAdjudicatedProcedureCode`** (`string`): The submitted adjudicated procedure code - an identifying number for a product or service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.submittedAdjudicatedProcedureModifierCodes`** (`array of strings`): A list of up to four modifiers that identify special circumstances related to the product or service. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.submittedProcedureCodeDescription`** (`string`): A free-form description to further clarify the procedure code and any modifiers. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.submittedProductOrServiceIDQualifier`** (`string`): Identifies the coding system or classification used to describe medical products, services, or procedures. These qualifiers specify which standardized code set is being used to identify the healthcare service or product. - Allowed values: `HC`, `AD`, `ER`, `IV`, `N4`, `NU`, `WK` - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.submittedProductOrServiceIDQualifierValue`** (`string`): The description of the `submittedProductOrServiceIDQualifier`. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].servicePaymentInformation.unitsOfServicePaidCount`** (`string`): The number of units of service that were paid, expressed as a decimal. If not present, the value is assumed to be one. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceStartDate`** (`string`): The date the service began, formatted as `YYYYMMDD`. Used for multi-day services. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts`** (`object`): Information about the service supplemental amount. All values are expressed as decimals. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.allowedActual`** (`string`): The payer payment plus any assigned patient responsibility. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.deductionAmount`** (`string`): This is the late filing reduction amount. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.federalMedicareOrMedicaidPaymentMandateCategory1`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 1. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.federalMedicareOrMedicaidPaymentMandateCategory2`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 2. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.federalMedicareOrMedicaidPaymentMandateCategory3`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 3. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.federalMedicareOrMedicaidPaymentMandateCategory4`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 4. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.federalMedicareOrMedicaidPaymentMandateCategory5`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 5. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.tax`** (`string`): The tax amount. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalAmounts.totalClaimBeforeTaxes`** (`string`): The total amount for the service charge before taxes. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalQuantities`** (`object`): Additional quantity information about the service. All values are expressed as decimals. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalQuantities.federalMedicareOrMedicaidPaymentMandateCategory1`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 1. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalQuantities.federalMedicareOrMedicaidPaymentMandateCategory2`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 2. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalQuantities.federalMedicareOrMedicaidPaymentMandateCategory3`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 3. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalQuantities.federalMedicareOrMedicaidPaymentMandateCategory4`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 4. - **`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceSupplementalQuantities.federalMedicareOrMedicaidPaymentMandateCategory5`** (`string`): Federal Medicare or Medicaid Payment Mandate - Category 5. - **`transactions[].detailInfo[].paymentInfo[].subscriber`** (`object`): Information about the primary policyholder for the health plan. This may or may not be the patient. - **`transactions[].detailInfo[].paymentInfo[].subscriber.firstName`** (`string`): The subscriber's first name. - **`transactions[].detailInfo[].paymentInfo[].subscriber.lastName`** (`string`): The subscriber's last name. - **`transactions[].detailInfo[].paymentInfo[].subscriber.memberId`** (`string`): The subscriber's member ID for their health plan. - **`transactions[].detailInfo[].paymentInfo[].subscriber.middleName`** (`string`): The subscriber's middle name or initial. - **`transactions[].detailInfo[].paymentInfo[].subscriber.organizationName`** (`string`): The subscriber's business name, if the subscriber is not an individual. - **`transactions[].detailInfo[].paymentInfo[].subscriber.standardUniqueHealthIdentifierForEachIndividualInTheUnitedStates`** (`string`): Deprecated - **`transactions[].detailInfo[].paymentInfo[].subscriber.suffix`** (`string`): The subscriber's name suffix, such as Jr. or III. - **`transactions[].detailInfo[].paymentInfo[].subscriber.taxId`** (`string`): The subscriber's Federal Taxpayer's Identification Number. Only used when the subscriber is a business entity and not an individual. - **`transactions[].detailInfo[].providerSummaryInformation`** (`object`): Summary information about the provider, including the provider's identifier, where the services were performed, and total claim charge amounts. - **`transactions[].detailInfo[].providerSummaryInformation.facilityTypeCode`** (`string`): A code identifying the type of facility where services were performed. This is the [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for Professional or Dental Services. - **`transactions[].detailInfo[].providerSummaryInformation.fiscalPeriodDate`** (`string`): The last day of the provider's fiscal year, formatted as `YYYYMMDD`. - **`transactions[].detailInfo[].providerSummaryInformation.providerIdentifier`** (`string`): The provider number. - **`transactions[].detailInfo[].providerSummaryInformation.totalClaimChargeAmount`** (`string`): The total of the charges reported for all claims, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalClaimCount`** (`string`): The total number of claims. - **`transactions[].detailInfo[].providerSummaryInformation.totalHCPCSPayableAmount`** (`string`): The total of the charges reported for all HCPCS codes that are payable, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalHCPCSReportedChargeAmount`** (`string`): The total of the charges reported for all Health Care Financing Administration Common Procedural Coding System (HCPCS) codes, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalMSPPatientLiabilityMetAmount`** (`string`): The total Medicare Secondary Payer (MSP) patient liability met, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalMSPPayerAmount`** (`string`): The total Medicare Secondary Payer (MSP) primary payer amount, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalNonLabChargeAmount`** (`string`): The total of non-laboratory charges, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalPIPAdjustmentAmount`** (`string`): The total periodic interim payment (PIP) adjustment amount, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalPIPClaimCount`** (`string`): The total periodic interim payment (PIP) number of claims, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalPatientReimbursementAmount`** (`string`): The total patient reimbursement amount, expressed as a decimal. - **`transactions[].detailInfo[].providerSummaryInformation.totalProfessionalComponentAmount`** (`string`): The total of the professional component charges, expressed as a decimal. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation`** (`object`): Additional summary information about the provider and the charges in the claim. All values are expressed as decimals. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.averageDRGLengthOfStay`** (`string`): The average length of stay for diagnosis related group (DRG) claims. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.averageDRGWeight`** (`string`): The average diagnosis-related group (DRG) weight. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalCapitalAmount`** (`string`): The total capital amount. This includes: capital federal-specfic amount, hospital federal-specfic amount, hold harmless amount, Indirect Medical Education amount, Disproportionate Share Hospital amount, and the exception amount. It does not include any capital outlier amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalCostOutlierAmount`** (`string`): The total cost outlier amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalCostReportDayCount`** (`string`): The total number of cost report days. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalCoveredDayCount`** (`string`): The total number of covered days. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalDRGAmount`** (`string`): The total of the charges reported for all diagnosis-related group (DRG) codes. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalDayOutlierAmount`** (`string`): The total day outlier amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalDischargeCount`** (`string`): The total number of discharges. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalDisproportionateShareAmount`** (`string`): The total disproportionate share amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalFederalSpecificAmount`** (`string`): The total federal specific amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalHospitalSpecificAmount`** (`string`): The total hospital specific amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalIndirectMedicalEducationAmount`** (`string`): The total indirect medical education amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalMSPPassThroughAmount`** (`string`): The total Medicare Secondary Payer (MSP) pass-through amount, calculated for a non-Medicare payer. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalNonCoveredDayCount`** (`string`): The total number of non-covered days. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalOutlierDayCount`** (`string`): The total number of outlier days. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalPPSCapitalFSPDRGAmount`** (`string`): The total prospective payment system (PPS) capital, federal-specific portion, diagnosis-related group (DRG) amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalPPSCapitalHSPDRGAmount`** (`string`): The total prospective payment system (PPS) capital, hospital-specific portion, diagnosis-related group (DRG) amount. - **`transactions[].detailInfo[].providerSupplementalSummaryInformation.totalPPSDSHDRGAmount`** (`string`): The total prospective payment system (PPS) disproportionate share, hospital diagnosis-related group (DRG) amount. - **`transactions[].financialInformation`** (`object`): Information about a payment, including the payment method, payment amount, and account details for both the sender and receiver. - **`transactions[].financialInformation.checkIssueOrEFTEffectiveDate`** (`string`): The date the payer considers the transaction to be settled, formatted as `YYYYMMDD`. If the payment is made by automated clearinghouse (ACH), this is the date the funds are available to the provider. If the payment is made by check, this is the date the check is issued. If the payment is made by Federal Reserve Funds/wire transfer, this is the date that the payer anticipates the money to move. - **`transactions[].financialInformation.creditOrDebitFlagCode`** (`string`): Indicates whether a financial transaction represents a credit or debit to the provider's account. Used to specify the direction of money flow in payment transactions. - Allowed values: `C`, `D` - **`transactions[].financialInformation.originatingCompanySupplementalCode`** (`string`): A code that further identifies the payer by division or region. - **`transactions[].financialInformation.payerIdentifier`** (`string`): A unique identifier for the payer, mutually established between the financial institution and the payer. - **`transactions[].financialInformation.paymentFormatCode`** (`string`): Identifies the specific electronic payment format used for ACH transactions. These formats determine the structure and content of the electronic payment message. - Allowed values: `CCP`, `CTX` - **`transactions[].financialInformation.paymentMethodCode`** (`string`): Specifies the method used to deliver payment to the provider. This determines how the payment will be transmitted, such as electronically through ACH, by physical check, or wire transfer. - Allowed values: `ACH`, `BOP`, `CHK`, `FWT`, `NON` - **`transactions[].financialInformation.receiverAccountDetails`** (`object`): Financial institution account details for the payment receiver. - **`transactions[].financialInformation.receiverAccountDetails.receiverAccountNumber`** (`string`): The provider's account number. - **`transactions[].financialInformation.receiverAccountDetails.receiverAccountNumberQualifier`** (`string`): Identifies the type of bank account being used for electronic payment transactions. This specifies whether the account is a checking (demand deposit) or savings account. - Allowed values: `DA`, `SA` - **`transactions[].financialInformation.receiverAccountDetails.receiverDfiIdNumberQualifier`** (`string`): Identifies the type of Depository Financial Institution (DFI) identification number being used. This specifies the format and country of the bank routing information. - Allowed values: `01`, `04` - **`transactions[].financialInformation.receiverAccountDetails.receiverDfiIdentificationNumber`** (`string`): The identification number specified in `receiverDfiIdNumberQualifier`. - **`transactions[].financialInformation.senderAccountDetails`** (`object`): Financial institution account details for the payment sender. - **`transactions[].financialInformation.senderAccountDetails.senderAccountNumber`** (`string`): The account number for the company originating the payment. - **`transactions[].financialInformation.senderAccountDetails.senderAccountNumberQualifier`** (`string`): Identifies the type of bank account being used for electronic payment transactions. This specifies whether the account is a checking (demand deposit) or savings account. - Allowed values: `DA`, `SA` - **`transactions[].financialInformation.senderAccountDetails.senderDFIIdentifier`** (`string`): The identifier specified by the `senderDfiIdNumberQualifier`. - **`transactions[].financialInformation.senderAccountDetails.senderDfiIdNumberQualifier`** (`string`): Identifies the type of Depository Financial Institution (DFI) identification number being used. This specifies the format and country of the bank routing information. - Allowed values: `01`, `04` - **`transactions[].financialInformation.totalActualProviderPaymentAmount`** (`string`): The total amount of the payment to the provider, expressed as a decimal. - **`transactions[].financialInformation.transactionHandlingCode`** (`string`): Indicates the actions that should be taken by both the sender and receiver of the payment transaction. This determines whether payment should be made, remittance sent, or both. - Allowed values: `C`, `D`, `H`, `I`, `P`, `U`, `X` - **`transactions[].foreignCurrency`** (`string`): The standard ISO code for the country whose currency is being used for payments. If this is not present, the currency is US dollars. - **`transactions[].payee`** (`object`): Information about the provider receiving the payment. - **`transactions[].payee.address`** (`object`): Address information for the payee. - **`transactions[].payee.address.address1`** (`string`): The first line of the address. - **`transactions[].payee.address.address2`** (`string`): The second line of the address. - **`transactions[].payee.address.city`** (`string`): The city where the address is located. - **`transactions[].payee.address.countryCode`** (`string`): The standard code for the country from Part 1 of ISO 3166. - **`transactions[].payee.address.countrySubCode`** (`string`): The standard code for the country subdivision from Part 2 of ISO 3166. - **`transactions[].payee.address.postalCode`** (`string`): The postal code for the address, excluding punctuation and blanks. - **`transactions[].payee.address.state`** (`string`): The standard code for the state or province. For example `PA` for Pennsylvania. - **`transactions[].payee.centersForMedicareAndMedicaidServicesPlanId`** (`string`): Formerly used to report the payee's Centers for Medicare and Medicaid Services (CMS) Plan ID. This used to report the Health Plan ID (HPID) or Other Entity Identifier (OEID). The Centers for Medicare and Medicaid Services (CMS) no longer uses HPID, so this property will not be populated. - **`transactions[].payee.federalTaxPayersIdentificationNumber`** (`string`): The payee's Federal Taxpayer's Identification Number (when the payee is a business) or the payee's social security number (when the payee is an individual provider). - **`transactions[].payee.name`** (`string`): The payee's name. This can be the name of an individual or an organization. - **`transactions[].payee.nationalCouncilForPrescriptionDrugProgramsPharmacyNumber`** (`string`): The payee's National Council for Prescription Drugs Pharmacy Number. - **`transactions[].payee.npi`** (`string`): The payee's National Provider Identifier (NPI). - **`transactions[].payee.payeeIdentification`** (`string`): Other information necessary to identify the payee. - **`transactions[].payee.remittanceDeliveryMethod`** (`object`): The method by which the remittance advice is delivered. This is used when the remittance is separate from the payment. - **`transactions[].payee.remittanceDeliveryMethod.email`** (`string`): The email address. - **`transactions[].payee.remittanceDeliveryMethod.ftp`** (`string`): Information for file transfer deliveries, such as SFTP, FTP, or FTPS. - **`transactions[].payee.remittanceDeliveryMethod.name`** (`string`): The name of the third party processor, if required, that would be the first recipient of the remittance. - **`transactions[].payee.remittanceDeliveryMethod.onLine`** (`string`): The web address of the online portal for secure hosted or other electronic delivery. The URL is typically provided without the scheme and separator. For example, `stedi.com`. - **`transactions[].payee.stateLicenseNumber`** (`string`): The payee's State License Number. - **`transactions[].payee.taxId`** (`string`): The payee's Federal Tax Identification Number (TIN). - **`transactions[].payer`** (`object`): Information about the payer. - **`transactions[].payer.address`** (`object`): Address information for the payer. - **`transactions[].payer.address.address1`** (`string`): The first line of the address. - **`transactions[].payer.address.address2`** (`string`): The second line of the address. - **`transactions[].payer.address.city`** (`string`): The city where the address is located. - **`transactions[].payer.address.countryCode`** (`string`): The standard code for the country from Part 1 of ISO 3166. - **`transactions[].payer.address.countrySubCode`** (`string`): The standard code for the country subdivision from Part 2 of ISO 3166. - **`transactions[].payer.address.postalCode`** (`string`): The postal code for the address, excluding punctuation and blanks. - **`transactions[].payer.address.state`** (`string`): The standard code for the state or province. For example `PA` for Pennsylvania. - **`transactions[].payer.businessContactInformation`** (`object`): A person or office to whom administrative communications should be directed. - **`transactions[].payer.businessContactInformation.contactMethods`** (`array of ContactMethod objects`) - **`transactions[].payer.businessContactInformation.contactMethods[].email`** (`string`): The email address. - **`transactions[].payer.businessContactInformation.contactMethods[].fax`** (`string`): The fax number. - **`transactions[].payer.businessContactInformation.contactMethods[].phone`** (`string`): The telephone number including the area code (if applicable). Phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`transactions[].payer.businessContactInformation.contactMethods[].phoneExtension`** (`string`): The telephone extension, if applicable. - **`transactions[].payer.businessContactInformation.contactName`** (`string`): The name of the contact person or entity. - **`transactions[].payer.centersForMedicareAndMedicaidServicesPlanId`** (`string`): Formerly used to report the payer's Health Plan ID (HPID) or Other Entity Identifier (OEID). The Centers for Medicare and Medicaid Services (CMS) no longer uses HPID, so this property will not be populated. - **`transactions[].payer.healthIndustryNumber`** (`string`): The payer's health industry number. - **`transactions[].payer.name`** (`string`): The payer's business name, such as Cigna or Aetna. - **`transactions[].payer.nationalAssociationOfInsuranceCommissioners`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) code. - **`transactions[].payer.payerIdentificationNumber`** (`string`): An identifier for the payer. For Medicare carriers or intermediaries, this is the Medicare carrier or intermediary ID number. For Blue Cross and Blue Shield Plans, this is the Blue Cross Blue Shield association plan code. Providers rarely use this identifier in practice. - **`transactions[].payer.payerWebSiteUrl`** (`string`): The payer's web address. The URL is typically provided without the scheme and separator. For example, `stedi.com`. - **`transactions[].payer.submitterIdentificationNumber`** (`string`): An identifier for the payer. This is used when the original transaction sender is not the payer or has an identifier other than those already provided. - **`transactions[].payer.technicalContactInformation`** (`array of TechnicalContactInformation objects`): A person or office. - **`transactions[].payer.technicalContactInformation[].contactMethods`** (`array of TechnicalContactMethod objects`): Available contact methods for technical support. - **`transactions[].payer.technicalContactInformation[].contactMethods[].email`** (`string`): The contact email address. - **`transactions[].payer.technicalContactInformation[].contactMethods[].fax`** (`string`): The contact fax number. - **`transactions[].payer.technicalContactInformation[].contactMethods[].phone`** (`string`): The contact telephone number including the area code. Phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`transactions[].payer.technicalContactInformation[].contactMethods[].phoneExtension`** (`string`): The contact telephone extension, if applicable. - **`transactions[].payer.technicalContactInformation[].contactMethods[].url`** (`string`): A web address to contact the person or entity. The URL is typically provided without the scheme and separator. For example, `stedi.com`. - **`transactions[].payer.technicalContactInformation[].contactName`** (`string`): The name of the contact person or entity. - **`transactions[].paymentAndRemitReassociationDetails`** (`object`): Information to uniquely identify the transaction and help with reassociating payments and remittances that have been separated. - **`transactions[].paymentAndRemitReassociationDetails.checkOrEFTTraceNumber`** (`string`): This value uniquely identifies the transaction. This is either the check number, the EFT reference number, or a unique remittance advice identification number (for non-payment ERAs). - **`transactions[].paymentAndRemitReassociationDetails.originatingCompanyIdentifier`** (`string`): A unique identifier for the payer. This is a 1 followed by the payer's Employer Identification Number (EIN) or Taxpayer Identification Number (TIN). - **`transactions[].paymentAndRemitReassociationDetails.originatingCompanySupplementalCode`** (`string`): A value that identifies a further subdivision within the payer's organization. - **`transactions[].paymentAndRemitReassociationDetails.traceTypeCode`** (`string`): Identifies the type of trace number used to uniquely identify and track payment transactions. This helps reassociate payments with their corresponding remittance advice. - Allowed values: `1` - **`transactions[].productionDate`** (`string`): The end date for the adjudication production cycle for claims included in this ERA, formatted as `YYYYMMDD`. - **`transactions[].providerAdjustments`** (`array of ProviderAdjustments objects`): Provider-level adjustment information for debit or credit transactions such as: accelerated payments, cost report settlements for a fiscal year, and timeliness report penalties unrelated to a specific claim or service. These adjustments can either decrease the payment (a positive number) or increase the payment (a negative number). - **`transactions[].providerAdjustments[].adjustments`** (`array of Adjustments objects`): List of adjustments applied to the provider. - **`transactions[].providerAdjustments[].adjustments[].adjustmentReasonCode`** (`string`): A code identifying the reason for the adjustment. Visit [Provider Adjustment Reason Codes](https://www.stedi.com/docs/healthcare/claims-code-lists#provider-adjustment-reason-code) for a complete list and descriptions. - **`transactions[].providerAdjustments[].adjustments[].adjustmentReasonCodeValue`** (`string`): The description of the `adjustmentReasonCode`. - **`transactions[].providerAdjustments[].adjustments[].providerAdjustmentAmount`** (`string`): The amount of the adjustment, per the adjustment reason provided. A negative amount increases the claim payment and a positive amount decreases the claim payment. - **`transactions[].providerAdjustments[].adjustments[].providerAdjustmentIdentifier`** (`string`): An identifier used to assist the receiver in identifying, tracking, or reconciling the adjustment. - **`transactions[].providerAdjustments[].fiscalPeriodDate`** (`string`): The last day of the provider's fiscal year, formatted as `YYYYMMDD`. - **`transactions[].providerAdjustments[].providerIdentifier`** (`string`): This is the provider's NPI. - **`transactions[].receiverIdentifier`** (`string`): The business identification information for the entity initially receiving the transaction. This is typically included when the receiver of the transaction is not the payee, such as a clearinghouse or billing service. - **`transactions[].versionIdentification`** (`string`): The version number of the adjudication system that generated the claim payments. **Example:** ```json { "meta": { "applicationMode": "production", "senderId": "BSW", "transactionId": "7647d644-9348-4596-a3b4-6830b8b48cc8" }, "transactions": [ { "controlNumber": "112233", "detailInfo": [ { "assignedNumber": "1", "paymentInfo": [ { "claimPaymentInfo": { "claimFilingIndicatorCode": "12", "claimFrequencyCode": "1", "claimPaymentAmount": "500", "claimStatusCode": "1", "facilityTypeCode": "11", "patientControlNumber": "1112223333", "patientResponsibilityAmount": "300", "payerClaimControlNumber": "94060555410000", "totalClaimChargeAmount": "800" }, "claimSupplementalInformation": { "coverageAmount": "800" }, "patientName": { "firstName": "JOHN", "lastName": "DOE", "memberId": "1234567891" }, "serviceLines": [ { "lineItemControlNumber": "111222333", "serviceAdjustments": [ { "adjustmentAmount1": "300", "adjustmentReason1": "Deductible Amount", "adjustmentReasonCode1": "1", "claimAdjustmentGroupCode": "PR", "claimAdjustmentGroupCodeValue": "Patient Responsibility" } ], "serviceDate": "20190301", "servicePaymentInformation": { "adjudicatedProcedureCode": "99211", "lineItemChargeAmount": "800", "lineItemProviderPaymentAmount": "500", "productOrServiceIDQualifier": "HC", "productOrServiceIDQualifierValue": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes" }, "serviceSupplementalAmounts": { "allowedActual": "800" } } ] }, { "claimPaymentInfo": { "claimFilingIndicatorCode": "12", "claimFrequencyCode": "1", "claimPaymentAmount": "600", "claimStatusCode": "1", "facilityTypeCode": "11", "patientControlNumber": "22255566677", "patientResponsibilityAmount": "600", "payerClaimControlNumber": "9407779923000", "totalClaimChargeAmount": "1200" }, "claimSupplementalInformation": { "coverageAmount": "1200" }, "patientName": { "firstName": "JANE", "lastName": "DOE", "memberId": "1234567891" }, "serviceLines": [ { "serviceAdjustments": [ { "adjustmentAmount1": "600", "adjustmentReason1": "Deductible Amount", "adjustmentReasonCode1": "1", "claimAdjustmentGroupCode": "PR", "claimAdjustmentGroupCodeValue": "Patient Responsibility" } ], "serviceDate": "20190310", "servicePaymentInformation": { "adjudicatedProcedureCode": "93555", "lineItemChargeAmount": "1200", "lineItemProviderPaymentAmount": "600", "productOrServiceIDQualifier": "HC", "productOrServiceIDQualifierValue": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes" }, "serviceSupplementalAmounts": { "allowedActual": "1200" } } ] } ] } ], "financialInformation": { "checkIssueOrEFTEffectiveDate": "20190316", "creditOrDebitFlagCode": "C", "payerIdentifier": "000000000", "paymentFormatCode": "CCP", "paymentMethodCode": "ACH", "receiverAccountDetails": { "receiverAccountNumber": "144444", "receiverAccountNumberQualifier": "DA", "receiverDfiIdNumberQualifier": "01", "receiverDfiIdentificationNumber": "111333555" }, "senderAccountDetails": { "senderAccountNumber": "11111111", "senderAccountNumberQualifier": "DA", "senderDFIIdentifier": "888999777", "senderDfiIdNumberQualifier": "01" }, "totalActualProviderPaymentAmount": "1100", "transactionHandlingCode": "I" }, "payee": { "federalTaxPayersIdentificationNumber": "777667755", "name": "ACME MEDICAL CENTER", "npi": "1999999984" }, "payer": { "address": { "address1": "10 SOUTH AVENUET", "city": "NEW YORK", "postalCode": "55111", "state": "SD" }, "name": "RUSHMORE LIFE", "technicalContactInformation": [ { "contactMethods": [ { "phone": "8005550000" } ], "contactName": "JOHN DOE" } ] }, "paymentAndRemitReassociationDetails": { "checkOrEFTTraceNumber": "71700666555", "originatingCompanyIdentifier": "1935665544", "traceTypeCode": "1" }, "productionDate": "20190314" } ] } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Insurance Discovery Check Results Source: https://www.stedi.com/docs/healthcare/api-reference/get-insurance-discovery-results You can use this endpoint to retrieve insurance discovery check results for a particular patient asynchronously. You can begin polling immediately after receiving a `PENDING` status response from the synchronous Insurance Discovery Check endpoint. This endpoint can take up to 120 seconds to return a response. It's unlikely for the insurance discovery process to take more than a few minutes, so it's rare to have to poll this endpoint more than once. However, if you receive a `PENDING` status, you can poll immediately again and continue polling until the status changes to `COMPLETE` or `ERROR`. Note that you should only expect to retrieve checks submitted within the last 30 days. After 30 days, the results may no longer be available. ## API Specification Retrieve insurance discovery check results by `discoveryId` **Endpoint:** `GET /insurance-discovery/check/v1/{discoveryId}` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`discoveryId`** (path) (required): The unique ID for the insurance discovery check. Stedi returns this value in the response from the [Insurance Discovery Check](https://www.stedi.com/docs/healthcare/api-reference/post-insurance-discovery) endpoint. - Type: `string` ### Responses #### 200 Check complete **Schema:** `GetInsuranceDiscoveryCheckResponseContent` **Properties:** - **`coveragesFound`** (`integer`): The number of potential coverage matches for the patient. This is `0` if Stedi didn't find any matching coverage. - **`discoveryId`** (`string`): A unique ID for this insurance discovery check. You can use it to retrieve the results asynchronously through the [Insurance Discovery Check Results](https://www.stedi.com/docs/healthcare/api-reference/get-insurance-discovery-results) endpoint. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items`** (`array of InsuranceDiscoveryResponseFields objects`): An array of potential coverage matches for the patient. It contains items only when the insurance discovery check `status` is `COMPLETE`. Each item in the array contains information about a potential match, including the provider, subscriber, payer, and plan information. - **`items[].benefitsInformation`** (`array of DiscoveryBenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, copays, etc.), out of pocket maximums, and more. This is the same information you would get from a standard eligibility check. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) in our eligibility check documentation for more information about benefit types, details about how to interpret the response, and additional examples. - **`items[].benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`items[].benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`items[].benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`items[].benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`items[].benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`items[].benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`items[].benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`items[].benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`items[].benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`items[].benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`items[].benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`items[].benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`items[].benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`items[].benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`items[].benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`items[].benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`items[].benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`items[].benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`items[].benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`items[].benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`items[].benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`items[].benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`items[].benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`items[].benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`items[].benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`items[].benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`items[].benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`items[].benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`items[].benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`items[].benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`items[].confidence`** (`object`) - **`items[].confidence.level`** (`string`) - Allowed values: `REVIEW_NEEDED`, `HIGH` - **`items[].confidence.reason`** (`string`): A reason for the confidence level, if one is available. For example, `This record was identified as a low confidence match due to a DOB partial match`. Not always included in the response. - **`items[].dependent`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].dependent.address`** (`object`) - **`items[].dependent.address.address1`** (`string`): The first line of the address. - **`items[].dependent.address.address2`** (`string`): The second line of the address. - **`items[].dependent.address.city`** (`string`): The city. - **`items[].dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].dependent.dateOfBirth`** (`string`): The member's date of birth. - **`items[].dependent.dateTimePeriod`** (`string`): The military service date. - **`items[].dependent.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].dependent.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].dependent.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].dependent.endDateTimePeriod`** (`string`): The military service end date. - **`items[].dependent.entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`items[].dependent.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.firstName`** (`string`): The member's first name. - **`items[].dependent.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].dependent.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].dependent.groupDescription`** (`string`): Group name - **`items[].dependent.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].dependent.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].dependent.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].dependent.insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`items[].dependent.lastName`** (`string`): The member's last name. - **`items[].dependent.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].dependent.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].dependent.memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`items[].dependent.middleName`** (`string`): The member's middle name or initial. - **`items[].dependent.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].dependent.planDescription`** (`string`): Plan name - **`items[].dependent.planNetworkDescription`** (`string`): Plan network name - **`items[].dependent.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].dependent.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].dependent.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`items[].dependent.relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`items[].dependent.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].dependent.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].dependent.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].dependent.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].dependent.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependent.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependent.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependent.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependent.responseProvider.address`** (`object`) - **`items[].dependent.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].dependent.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].dependent.responseProvider.address.city`** (`string`): The city. - **`items[].dependent.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].dependent.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].dependent.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].dependent.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].dependent.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].dependent.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].dependent.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].dependent.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].dependent.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].dependent.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].dependent.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].dependent.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].dependent.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].dependent.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].dependent.startDateTimePeriod`** (`string`): The military service start date. - **`items[].dependent.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].dependent.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].payer`** (`object`) - **`items[].payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`items[].payer.contactInformation`** (`object`) - **`items[].payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].payer.contactInformation.name`** (`string`): The name of the contact person. - **`items[].payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`items[].payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`items[].payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`items[].payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`items[].payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`items[].payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`items[].payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`items[].payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].payer.payorIdentification`** (`string`): The payer identification. - **`items[].payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`items[].payerId`** (`string`): The primary payer ID for this payer in [Stedi’s Payer Network](https://www.stedi.com/healthcare/network). When empty, normalize the payer ID from `payer.payorIdentification`. - **`items[].planDateInformation`** (`object`) - **`items[].planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].planDateInformation.admission`** (`string`): The admission date or dates. - **`items[].planDateInformation.certification`** (`string`): The certification date. - **`items[].planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`items[].planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].planDateInformation.discharge`** (`string`): The discharge date. - **`items[].planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].planDateInformation.issue`** (`string`): The issue date. - **`items[].planDateInformation.plan`** (`string`): Plan effective dates. - **`items[].planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`items[].planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].planDateInformation.service`** (`string`): The service date or dates. - **`items[].planDateInformation.status`** (`string`): The status date. - **`items[].planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`items[].planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`items[].planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`items[].planInformation.caseNumber`** (`string`): The case number - **`items[].planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`items[].planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`items[].planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`items[].planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`items[].planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`items[].planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`items[].planInformation.eligibilityCategory`** (`string`): The eligibility category - **`items[].planInformation.facilityIdNumber`** (`string`): The facility ID number - **`items[].planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`items[].planInformation.familyUnitNumber`** (`string`): The family unit number - **`items[].planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`items[].planInformation.groupDescription`** (`string`): The group description - **`items[].planInformation.groupNumber`** (`string`): The group number - **`items[].planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`items[].planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`items[].planInformation.issueNumber`** (`string`): The issue number - **`items[].planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`items[].planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`items[].planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`items[].planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`items[].planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`items[].planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`items[].planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`items[].planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`items[].planInformation.planDescription`** (`string`): The plan description - **`items[].planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`items[].planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`items[].planInformation.planNumber`** (`string`): The plan number - **`items[].planInformation.policyNumber`** (`string`): The group or policy number - **`items[].planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`items[].planInformation.priorIdNumber`** (`string`): The prior identifier number - **`items[].planInformation.referralNumber`** (`string`): The referral number - **`items[].planInformation.socialSecurityNumber`** (`string`): The social security number - **`items[].planInformation.stateLicenseNumber`** (`string`): The state license number - **`items[].planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`items[].planInformation.userIdentification`** (`string`): The user identification - **`items[].provider`** (`object`) - **`items[].provider.address`** (`object`) - **`items[].provider.address.address1`** (`string`): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].provider.payorIdentification`** (`string`): The payer identification. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].provider.providerOrgName`** (`string`): The provider's organization name. - **`items[].provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].provider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].subscriber.address`** (`object`) - **`items[].subscriber.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`items[].subscriber.dateTimePeriod`** (`string`): The military service date. - **`items[].subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`items[].subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`items[].subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.firstName`** (`string`): The member's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].subscriber.groupDescription`** (`string`): Group name - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`items[].subscriber.lastName`** (`string`): The member's last name. - **`items[].subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`items[].subscriber.middleName`** (`string`): The member's middle name or initial. - **`items[].subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].subscriber.planDescription`** (`string`): Plan name - **`items[].subscriber.planNetworkDescription`** (`string`): Plan network name - **`items[].subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`items[].subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`items[].subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.responseProvider.address`** (`object`) - **`items[].subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.responseProvider.address.city`** (`string`): The city. - **`items[].subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.traceId`** (`string`): The unique ID Stedi assigns to this request. - **`status`** (`string`) - Allowed values: `PENDING`, `COMPLETE`, `ERROR` - **`warnings`** (`array of Warning objects`): Issues with your insurance discovery check that may affect the results. For example, Stedi issues a warning when enrolling with a payer would improve the results for future requests. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. **Example:** ```json { "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "items": [ { "benefitsInformation": [ { "additionalInformation": [ { "description": "To determine if a prior authorization is required, please check the health plan's website." } ], "benefitsRelatedEntities": [ { "entityFirstname": "Jane", "entityIdentification": "XX", "entityIdentificationValue": "1234567890", "entityIdentifier": "Primary Care Provider", "entityName": "Dough", "entityType": "Person" } ], "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ] }, { "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "1" ], "serviceTypes": [ "Medical Care" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "5" ], "serviceTypes": [ "Diagnostic Lab" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "20", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "5" ], "serviceTypes": [ "Diagnostic Lab" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "5" ], "serviceTypes": [ "Diagnostic Lab" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "12" ], "serviceTypes": [ "Durable Medical Equipment Purchase" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "12" ], "serviceTypes": [ "Durable Medical Equipment Purchase" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "12" ], "serviceTypes": [ "Durable Medical Equipment Purchase" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "13" ], "serviceTypes": [ "Ambulatory Service Center Facility" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "13" ], "serviceTypes": [ "Ambulatory Service Center Facility" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "13" ], "serviceTypes": [ "Ambulatory Service Center Facility" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "18" ], "serviceTypes": [ "Durable Medical Equipment Rental" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "18" ], "serviceTypes": [ "Durable Medical Equipment Rental" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "18" ], "serviceTypes": [ "Durable Medical Equipment Rental" ] }, { "additionalInformation": [ { "description": "Limited to 26 visits per year (visits in excess of 26 require prior authorization)." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "33" ], "serviceTypes": [ "Chiropractic" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "33" ], "serviceTypes": [ "Chiropractic" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "33" ], "serviceTypes": [ "Chiropractic" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "48" ], "serviceTypes": [ "Hospital - Inpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "48" ], "serviceTypes": [ "Hospital - Inpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "48" ], "serviceTypes": [ "Hospital - Inpatient" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "50" ], "serviceTypes": [ "Hospital - Outpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "50" ], "serviceTypes": [ "Hospital - Outpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "50" ], "serviceTypes": [ "Hospital - Outpatient" ] }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "53" ], "serviceTypes": [ "Hospital - Ambulatory Surgical" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "53" ], "serviceTypes": [ "Hospital - Ambulatory Surgical" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "53" ], "serviceTypes": [ "Hospital - Ambulatory Surgical" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "62" ], "serviceTypes": [ "MRI/CAT Scan" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "62" ], "serviceTypes": [ "MRI/CAT Scan" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "62" ], "serviceTypes": [ "MRI/CAT Scan" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "65" ], "serviceTypes": [ "Newborn Care" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "65" ], "serviceTypes": [ "Newborn Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "65" ], "serviceTypes": [ "Newborn Care" ] }, { "additionalInformation": [ { "description": "Covered in accordance with ACA guidelines." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "68" ], "serviceTypes": [ "Well Baby Care" ] }, { "benefitAmount": "0", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "68" ], "serviceTypes": [ "Well Baby Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "68" ], "serviceTypes": [ "Well Baby Care" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "69" ], "serviceTypes": [ "Maternity" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "69" ], "serviceTypes": [ "Maternity" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "69" ], "serviceTypes": [ "Maternity" ] }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "88" ], "serviceTypes": [ "Pharmacy" ] }, { "additionalInformation": [ { "description": "per prescription" } ], "benefitAmount": "10", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "88" ], "serviceTypes": [ "Pharmacy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "88" ], "serviceTypes": [ "Pharmacy" ] }, { "additionalInformation": [ { "description": "PCP" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "per visit" }, { "description": "PCP" } ], "benefitAmount": "15", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "PCP" } ], "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "Specialist" }, { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "per visit" }, { "description": "Specialist" } ], "benefitAmount": "30", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Specialist" } ], "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit. (Primary Care Provider (PCP) and other practitioner office visits do not require prior authorization.) Note| Services (excluding Emergency Room Care / Emergency Services) rendered by an out-of-network provider" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A4" ], "serviceTypes": [ "Psychiatric" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A4" ], "serviceTypes": [ "Psychiatric" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A4" ], "serviceTypes": [ "Psychiatric" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A7" ], "serviceTypes": [ "Psychiatric - Inpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A7" ], "serviceTypes": [ "Psychiatric - Inpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A7" ], "serviceTypes": [ "Psychiatric - Inpatient" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A8" ], "serviceTypes": [ "Psychiatric - Outpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A8" ], "serviceTypes": [ "Psychiatric - Outpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A8" ], "serviceTypes": [ "Psychiatric - Outpatient" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AD" ], "serviceTypes": [ "Occupational Therapy" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AD" ], "serviceTypes": [ "Occupational Therapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AD" ], "serviceTypes": [ "Occupational Therapy" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AF" ], "serviceTypes": [ "Speech Therapy" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AF" ], "serviceTypes": [ "Speech Therapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AF" ], "serviceTypes": [ "Speech Therapy" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Limited to 150 days per year." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AG" ], "serviceTypes": [ "Skilled Nursing Care" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AG" ], "serviceTypes": [ "Skilled Nursing Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AG" ], "serviceTypes": [ "Skilled Nursing Care" ] }, { "additionalInformation": [ { "description": "Covered in accordance with ACA guidelines." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "BZ" ], "serviceTypes": [ "Physician Visit - Office: Well" ] }, { "benefitAmount": "0", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "BZ" ], "serviceTypes": [ "Physician Visit - Office: Well" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "BZ" ], "serviceTypes": [ "Physician Visit - Office: Well" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "MH" ], "serviceTypes": [ "Mental Health" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "MH" ], "serviceTypes": [ "Mental Health" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "MH" ], "serviceTypes": [ "Mental Health" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "PT" ], "serviceTypes": [ "Physical Therapy" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "15", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "PT" ], "serviceTypes": [ "Physical Therapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "PT" ], "serviceTypes": [ "Physical Therapy" ] }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "10", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "10", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "3000", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "2000", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "6000", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "5000", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" } ], "confidence": { "level": "REVIEW_NEEDED", "reason": "This record was identified as a low confidence match due to a DOB partial match" }, "payer": { "name": "EXAMPLE INSURANCE CO" }, "planDateInformation": { "eligibilityBegin": "20250101", "planBegin": "20250101", "service": "20250301" }, "planInformation": { "groupDescription": "Individual On-Exchange", "groupNumber": "123456-78", "planNumber": "123456-EXMPL9876" }, "provider": { "entityType": "Non-Person Entity", "npi": "1999999984", "providerName": "provider" }, "subscriber": { "address": { "address1": "123 Main Street", "city": "ANYTOWN", "postalCode": "12345", "state": "CA" }, "dateOfBirth": "19900115", "firstName": "John", "gender": "M", "groupDescription": "Individual On-Exchange", "groupNumber": "123456-78", "lastName": "Doe", "memberId": "987654321000", "middleName": "Smith", "planNumber": "123456-EXMPL9876" } } ], "meta": { "applicationMode": "production", "traceId": "1-abcdef12-123456789abcdef123456789" }, "status": "COMPLETE" } ``` #### 202 Still processing **Schema:** `GetInsuranceDiscoveryCheckResponseContent` **Properties:** - **`coveragesFound`** (`integer`): The number of potential coverage matches for the patient. This is `0` if Stedi didn't find any matching coverage. - **`discoveryId`** (`string`): A unique ID for this insurance discovery check. You can use it to retrieve the results asynchronously through the [Insurance Discovery Check Results](https://www.stedi.com/docs/healthcare/api-reference/get-insurance-discovery-results) endpoint. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items`** (`array of InsuranceDiscoveryResponseFields objects`): An array of potential coverage matches for the patient. It contains items only when the insurance discovery check `status` is `COMPLETE`. Each item in the array contains information about a potential match, including the provider, subscriber, payer, and plan information. - **`items[].benefitsInformation`** (`array of DiscoveryBenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, copays, etc.), out of pocket maximums, and more. This is the same information you would get from a standard eligibility check. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) in our eligibility check documentation for more information about benefit types, details about how to interpret the response, and additional examples. - **`items[].benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`items[].benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`items[].benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`items[].benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`items[].benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`items[].benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`items[].benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`items[].benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`items[].benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`items[].benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`items[].benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`items[].benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`items[].benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`items[].benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`items[].benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`items[].benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`items[].benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`items[].benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`items[].benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`items[].benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`items[].benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`items[].benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`items[].benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`items[].benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`items[].benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`items[].benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`items[].benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`items[].benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`items[].benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`items[].benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`items[].confidence`** (`object`) - **`items[].confidence.level`** (`string`) - Allowed values: `REVIEW_NEEDED`, `HIGH` - **`items[].confidence.reason`** (`string`): A reason for the confidence level, if one is available. For example, `This record was identified as a low confidence match due to a DOB partial match`. Not always included in the response. - **`items[].dependent`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].dependent.address`** (`object`) - **`items[].dependent.address.address1`** (`string`): The first line of the address. - **`items[].dependent.address.address2`** (`string`): The second line of the address. - **`items[].dependent.address.city`** (`string`): The city. - **`items[].dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].dependent.dateOfBirth`** (`string`): The member's date of birth. - **`items[].dependent.dateTimePeriod`** (`string`): The military service date. - **`items[].dependent.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].dependent.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].dependent.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].dependent.endDateTimePeriod`** (`string`): The military service end date. - **`items[].dependent.entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`items[].dependent.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.firstName`** (`string`): The member's first name. - **`items[].dependent.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].dependent.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].dependent.groupDescription`** (`string`): Group name - **`items[].dependent.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].dependent.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].dependent.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].dependent.insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`items[].dependent.lastName`** (`string`): The member's last name. - **`items[].dependent.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].dependent.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].dependent.memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`items[].dependent.middleName`** (`string`): The member's middle name or initial. - **`items[].dependent.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].dependent.planDescription`** (`string`): Plan name - **`items[].dependent.planNetworkDescription`** (`string`): Plan network name - **`items[].dependent.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].dependent.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].dependent.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`items[].dependent.relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`items[].dependent.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].dependent.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].dependent.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].dependent.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].dependent.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependent.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependent.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependent.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependent.responseProvider.address`** (`object`) - **`items[].dependent.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].dependent.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].dependent.responseProvider.address.city`** (`string`): The city. - **`items[].dependent.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].dependent.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].dependent.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].dependent.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].dependent.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].dependent.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].dependent.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].dependent.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].dependent.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].dependent.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].dependent.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].dependent.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].dependent.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].dependent.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].dependent.startDateTimePeriod`** (`string`): The military service start date. - **`items[].dependent.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].dependent.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].payer`** (`object`) - **`items[].payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`items[].payer.contactInformation`** (`object`) - **`items[].payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].payer.contactInformation.name`** (`string`): The name of the contact person. - **`items[].payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`items[].payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`items[].payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`items[].payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`items[].payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`items[].payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`items[].payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`items[].payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].payer.payorIdentification`** (`string`): The payer identification. - **`items[].payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`items[].payerId`** (`string`): The primary payer ID for this payer in [Stedi’s Payer Network](https://www.stedi.com/healthcare/network). When empty, normalize the payer ID from `payer.payorIdentification`. - **`items[].planDateInformation`** (`object`) - **`items[].planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].planDateInformation.admission`** (`string`): The admission date or dates. - **`items[].planDateInformation.certification`** (`string`): The certification date. - **`items[].planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`items[].planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].planDateInformation.discharge`** (`string`): The discharge date. - **`items[].planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].planDateInformation.issue`** (`string`): The issue date. - **`items[].planDateInformation.plan`** (`string`): Plan effective dates. - **`items[].planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`items[].planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].planDateInformation.service`** (`string`): The service date or dates. - **`items[].planDateInformation.status`** (`string`): The status date. - **`items[].planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`items[].planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`items[].planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`items[].planInformation.caseNumber`** (`string`): The case number - **`items[].planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`items[].planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`items[].planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`items[].planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`items[].planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`items[].planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`items[].planInformation.eligibilityCategory`** (`string`): The eligibility category - **`items[].planInformation.facilityIdNumber`** (`string`): The facility ID number - **`items[].planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`items[].planInformation.familyUnitNumber`** (`string`): The family unit number - **`items[].planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`items[].planInformation.groupDescription`** (`string`): The group description - **`items[].planInformation.groupNumber`** (`string`): The group number - **`items[].planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`items[].planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`items[].planInformation.issueNumber`** (`string`): The issue number - **`items[].planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`items[].planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`items[].planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`items[].planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`items[].planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`items[].planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`items[].planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`items[].planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`items[].planInformation.planDescription`** (`string`): The plan description - **`items[].planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`items[].planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`items[].planInformation.planNumber`** (`string`): The plan number - **`items[].planInformation.policyNumber`** (`string`): The group or policy number - **`items[].planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`items[].planInformation.priorIdNumber`** (`string`): The prior identifier number - **`items[].planInformation.referralNumber`** (`string`): The referral number - **`items[].planInformation.socialSecurityNumber`** (`string`): The social security number - **`items[].planInformation.stateLicenseNumber`** (`string`): The state license number - **`items[].planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`items[].planInformation.userIdentification`** (`string`): The user identification - **`items[].provider`** (`object`) - **`items[].provider.address`** (`object`) - **`items[].provider.address.address1`** (`string`): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].provider.payorIdentification`** (`string`): The payer identification. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].provider.providerOrgName`** (`string`): The provider's organization name. - **`items[].provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].provider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].subscriber.address`** (`object`) - **`items[].subscriber.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`items[].subscriber.dateTimePeriod`** (`string`): The military service date. - **`items[].subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`items[].subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`items[].subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.firstName`** (`string`): The member's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].subscriber.groupDescription`** (`string`): Group name - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`items[].subscriber.lastName`** (`string`): The member's last name. - **`items[].subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`items[].subscriber.middleName`** (`string`): The member's middle name or initial. - **`items[].subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].subscriber.planDescription`** (`string`): Plan name - **`items[].subscriber.planNetworkDescription`** (`string`): Plan network name - **`items[].subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`items[].subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`items[].subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.responseProvider.address`** (`object`) - **`items[].subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.responseProvider.address.city`** (`string`): The city. - **`items[].subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.traceId`** (`string`): The unique ID Stedi assigns to this request. - **`status`** (`string`) - Allowed values: `PENDING`, `COMPLETE`, `ERROR` - **`warnings`** (`array of Warning objects`): Issues with your insurance discovery check that may affect the results. For example, Stedi issues a warning when enrolling with a payer would improve the results for future requests. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. **Example:** ```json { "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "meta": { "traceId": "1-abcdef12-abcdef123456789abcdef123" }, "status": "PENDING" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 502 Check failed **Schema:** `GetInsuranceDiscoveryCheckResponseContent` **Properties:** - **`coveragesFound`** (`integer`): The number of potential coverage matches for the patient. This is `0` if Stedi didn't find any matching coverage. - **`discoveryId`** (`string`): A unique ID for this insurance discovery check. You can use it to retrieve the results asynchronously through the [Insurance Discovery Check Results](https://www.stedi.com/docs/healthcare/api-reference/get-insurance-discovery-results) endpoint. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items`** (`array of InsuranceDiscoveryResponseFields objects`): An array of potential coverage matches for the patient. It contains items only when the insurance discovery check `status` is `COMPLETE`. Each item in the array contains information about a potential match, including the provider, subscriber, payer, and plan information. - **`items[].benefitsInformation`** (`array of DiscoveryBenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, copays, etc.), out of pocket maximums, and more. This is the same information you would get from a standard eligibility check. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) in our eligibility check documentation for more information about benefit types, details about how to interpret the response, and additional examples. - **`items[].benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`items[].benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`items[].benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`items[].benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`items[].benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`items[].benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`items[].benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`items[].benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`items[].benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`items[].benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`items[].benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`items[].benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`items[].benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`items[].benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`items[].benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`items[].benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`items[].benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`items[].benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`items[].benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`items[].benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`items[].benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`items[].benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`items[].benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`items[].benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`items[].benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`items[].benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`items[].benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`items[].benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`items[].benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`items[].benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`items[].confidence`** (`object`) - **`items[].confidence.level`** (`string`) - Allowed values: `REVIEW_NEEDED`, `HIGH` - **`items[].confidence.reason`** (`string`): A reason for the confidence level, if one is available. For example, `This record was identified as a low confidence match due to a DOB partial match`. Not always included in the response. - **`items[].dependent`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].dependent.address`** (`object`) - **`items[].dependent.address.address1`** (`string`): The first line of the address. - **`items[].dependent.address.address2`** (`string`): The second line of the address. - **`items[].dependent.address.city`** (`string`): The city. - **`items[].dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].dependent.dateOfBirth`** (`string`): The member's date of birth. - **`items[].dependent.dateTimePeriod`** (`string`): The military service date. - **`items[].dependent.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].dependent.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].dependent.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].dependent.endDateTimePeriod`** (`string`): The military service end date. - **`items[].dependent.entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`items[].dependent.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.firstName`** (`string`): The member's first name. - **`items[].dependent.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].dependent.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].dependent.groupDescription`** (`string`): Group name - **`items[].dependent.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].dependent.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].dependent.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].dependent.insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`items[].dependent.lastName`** (`string`): The member's last name. - **`items[].dependent.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].dependent.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].dependent.memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`items[].dependent.middleName`** (`string`): The member's middle name or initial. - **`items[].dependent.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].dependent.planDescription`** (`string`): Plan name - **`items[].dependent.planNetworkDescription`** (`string`): Plan network name - **`items[].dependent.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].dependent.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].dependent.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`items[].dependent.relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`items[].dependent.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].dependent.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].dependent.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].dependent.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].dependent.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependent.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependent.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependent.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependent.responseProvider.address`** (`object`) - **`items[].dependent.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].dependent.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].dependent.responseProvider.address.city`** (`string`): The city. - **`items[].dependent.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].dependent.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].dependent.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].dependent.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].dependent.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].dependent.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].dependent.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].dependent.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].dependent.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].dependent.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].dependent.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].dependent.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].dependent.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].dependent.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].dependent.startDateTimePeriod`** (`string`): The military service start date. - **`items[].dependent.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].dependent.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].payer`** (`object`) - **`items[].payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`items[].payer.contactInformation`** (`object`) - **`items[].payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].payer.contactInformation.name`** (`string`): The name of the contact person. - **`items[].payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`items[].payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`items[].payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`items[].payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`items[].payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`items[].payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`items[].payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`items[].payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].payer.payorIdentification`** (`string`): The payer identification. - **`items[].payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`items[].payerId`** (`string`): The primary payer ID for this payer in [Stedi’s Payer Network](https://www.stedi.com/healthcare/network). When empty, normalize the payer ID from `payer.payorIdentification`. - **`items[].planDateInformation`** (`object`) - **`items[].planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].planDateInformation.admission`** (`string`): The admission date or dates. - **`items[].planDateInformation.certification`** (`string`): The certification date. - **`items[].planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`items[].planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].planDateInformation.discharge`** (`string`): The discharge date. - **`items[].planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].planDateInformation.issue`** (`string`): The issue date. - **`items[].planDateInformation.plan`** (`string`): Plan effective dates. - **`items[].planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`items[].planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].planDateInformation.service`** (`string`): The service date or dates. - **`items[].planDateInformation.status`** (`string`): The status date. - **`items[].planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`items[].planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`items[].planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`items[].planInformation.caseNumber`** (`string`): The case number - **`items[].planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`items[].planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`items[].planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`items[].planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`items[].planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`items[].planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`items[].planInformation.eligibilityCategory`** (`string`): The eligibility category - **`items[].planInformation.facilityIdNumber`** (`string`): The facility ID number - **`items[].planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`items[].planInformation.familyUnitNumber`** (`string`): The family unit number - **`items[].planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`items[].planInformation.groupDescription`** (`string`): The group description - **`items[].planInformation.groupNumber`** (`string`): The group number - **`items[].planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`items[].planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`items[].planInformation.issueNumber`** (`string`): The issue number - **`items[].planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`items[].planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`items[].planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`items[].planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`items[].planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`items[].planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`items[].planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`items[].planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`items[].planInformation.planDescription`** (`string`): The plan description - **`items[].planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`items[].planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`items[].planInformation.planNumber`** (`string`): The plan number - **`items[].planInformation.policyNumber`** (`string`): The group or policy number - **`items[].planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`items[].planInformation.priorIdNumber`** (`string`): The prior identifier number - **`items[].planInformation.referralNumber`** (`string`): The referral number - **`items[].planInformation.socialSecurityNumber`** (`string`): The social security number - **`items[].planInformation.stateLicenseNumber`** (`string`): The state license number - **`items[].planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`items[].planInformation.userIdentification`** (`string`): The user identification - **`items[].provider`** (`object`) - **`items[].provider.address`** (`object`) - **`items[].provider.address.address1`** (`string`): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].provider.payorIdentification`** (`string`): The payer identification. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].provider.providerOrgName`** (`string`): The provider's organization name. - **`items[].provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].provider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].subscriber.address`** (`object`) - **`items[].subscriber.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`items[].subscriber.dateTimePeriod`** (`string`): The military service date. - **`items[].subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`items[].subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`items[].subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.firstName`** (`string`): The member's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].subscriber.groupDescription`** (`string`): Group name - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`items[].subscriber.lastName`** (`string`): The member's last name. - **`items[].subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`items[].subscriber.middleName`** (`string`): The member's middle name or initial. - **`items[].subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].subscriber.planDescription`** (`string`): Plan name - **`items[].subscriber.planNetworkDescription`** (`string`): Plan network name - **`items[].subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`items[].subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`items[].subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.responseProvider.address`** (`object`) - **`items[].subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.responseProvider.address.city`** (`string`): The city. - **`items[].subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.traceId`** (`string`): The unique ID Stedi assigns to this request. - **`status`** (`string`) - Allowed values: `PENDING`, `COMPLETE`, `ERROR` - **`warnings`** (`array of Warning objects`): Issues with your insurance discovery check that may affect the results. For example, Stedi issues a warning when enrolling with a payer would improve the results for future requests. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. **Example:** ```json { "coveragesFound": 0, "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "items": [], "meta": { "applicationMode": "production", "traceId": "1-abcdef12-123456789abcdef123456789" }, "status": "ERROR" } ``` #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # List Transactions Source: https://www.stedi.com/docs/healthcare/api-reference/get-list-transactions This endpoint fetches a list of all the transactions Stedi has processed in your account. It's useful for displaying a list of transactions in a UI. If you want to programmatically fetch and check for new transactions, you should use the [Poll Transactions](/healthcare/api-reference/get-poll-transactions) endpoint instead. ## API Specification Fetch a list of transactions, sorted by the date they were created from newest to oldest. **Endpoint:** `GET /transactions` **Base URL:** `https://core.us.stedi.com/2023-08-01` ### Parameters - **`pageSize`** (query): The maximum number of elements to return in a page. You can set this to a maximum of 500 elements. If not specified, the default is 100. - Type: `number` - **`pageToken`** (query): A token returned by a previous call to this operation in the `nextPageToken`. If not specified, Stedi returns the first page of results. - Type: `string` - **`businessIdentifier`** (query): List only transactions containing a business identifier with the given value. - Type: `string` - **`transactionSetId`** (query): List only a given type of transaction. Accepts any valid 3-digit X12 Transaction Set Identifier Code, as defined in the X12 standard. See: . - **`sender`** (query): List only transactions sent by the given profile. This is the profile ID of the sender. - Type: `string` - **`receiver`** (query): List only transactions sent to the given profile. This is the profile ID of the receiver. - Type: `string` - **`direction`** (query): The direction of the transaction. Inbound transactions are those you receive from a payer, provider, or other trading partner. Outbound transactions are those you send to a payer, provider, or other trading partner. - **`mode`** (query): Indicates whether the transaction contains test or production data. Stedi determines this from the value in [`ISA15` Usage Indicator Code](https://www.stedi.com/edi/x12/segment/ISA#ISA-15). - **`status`** (query): A status indicating whether Stedi was able to successfully process the transaction. - **`from`** (query): The start of the time range to filter transactions. The results will include transactions created at or after this timestamp. - Type: `string` - **`to`** (query): The end of the time range to filter transactions. The results will include transactions up to and including this timestamp. - Type: `string` - **`elementId`** (query): List only transactions containing a business identifier with the given element ID. This is the X12 element ID, such as "127" for Reference Identification. May only be supplied if `businessIdentifier` is also supplied. See Stedi's EDI references pages to find element IDs. - Type: `string` - **`partnershipId`** (query): List only transactions that were sent or received on the given partnership. This is the partnership ID, such as "local_clearinghouse-test". - Type: `string` ### Responses #### 200 ListTransactions 200 response **Schema:** `ListTransactionsResponseContent` **Properties:** - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. - **`items`** (`array of TransactionSummary objects`) (required) - **`items[].transactionId`** (`string`) (required): A unique identifier for the processed transaction within Stedi. This ID is included in the transaction processed event. You can also retrieve it manually from the transaction's details page within the Stedi portal. - **`items[].fileExecutionId`** (`string`) (required): A unique identifier for the processed file within Stedi. This ID is included in the transaction processed event. You can also retrieve it manually from the file's details page in the Stedi portal. - **`items[].status`** (`string`) (required): A status indicating whether Stedi was able to successfully process the transaction. - Allowed values: `failed`, `succeeded` - **`items[].direction`** (`string`) (required): The direction of the transaction. Inbound transactions are those you receive from a payer, provider, or other trading partner. Outbound transactions are those you send to a payer, provider, or other trading partner. - Allowed values: `INBOUND`, `OUTBOUND`, `UNKNOWN` - **`items[].mode`** (`string`) (required): Indicates whether the transaction contains test or production data. Stedi determines this from the value in [`ISA15` Usage Indicator Code](https://www.stedi.com/edi/x12/segment/ISA#ISA-15). - Allowed values: `test`, `production`, `other` - **`items[].processedAt`** (`string`) (required): The date and time when Stedi processed the transaction, in ISO 8601 format. For example, `2023-08-28T00:00:00Z`. - **`items[].artifacts`** (`array of Artifact objects`) (required): A list of artifacts related to the transaction. - **`items[].artifacts[].artifactType`** (`string`) (required): The format of the artifact. - Allowed values: `text/csv`, `application/edifact`, `application/filepart`, `application/json`, `application/pdf`, `text/psv`, `text/tsv`, `application/edi-x12`, `application/xml`, `application/zip`, `image/jpeg`, `image/png`, `image/tiff`, `text/plain`, `unknown` - **`items[].artifacts[].usage`** (`string`) (required): The type of data the artifact contains. For example, an input artifact represents the original data Stedi received before processing, while an output artifact represents the processed data. For example, for an inbound 835 ERA from a payer, the input artifact would be the original X12 EDI, and the output artifact would be the JSON representation of the ERA. - Allowed values: `attachment`, `input`, `metadata`, `output` - **`items[].artifacts[].sizeBytes`** (`number`) (required): The size of the artifact in bytes. - **`items[].artifacts[].url`** (`string`) (required): A URL to download the artifact. - **`items[].artifacts[].model`** (`string`) (required): The model of the artifact, which indicates the type of process or operation it represents. For example, an execution artifact represents a file that was processed, a fragment artifact represents a part of a larger transaction, and a fault artifact represents an error that occurred during processing. - Allowed values: `execution`, `fragment`, `transaction`, `fault` - **`items[].partnership`** (`object`) (required): Information about the associated partnership. A partnership describes all aspects of the EDI relationship between two profiles in your Stedi account, such as which transaction sets they will exchange and other important information for processing EDI files. If you're sending or receiving transactions through the Stedi clearinghouse, Stedi configures the necessary partnership for you automatically when you set up your account. - **`items[].partnership.partnershipId`** (`string`) (required): The unique identifier for the partnership within the Stedi platform. A partnership describes all aspects of the EDI relationship between two profiles in your Stedi account, such as which transaction sets they will exchange and other important information for processing EDI files. If you're sending or receiving transactions through the Stedi clearinghouse, Stedi configures the necessary partnerships for you automatically when you set up your account. - **`items[].partnership.partnershipType`** (`string`) (required): The type of partnership, which determines the EDI standard used for exchanging transactions. - Allowed values: `x12`, `edifact` - **`items[].partnership.sender`** (`object`) (required): The entity that initiated the transaction. - **`items[].partnership.sender.profileId`** (`string`) (required): A unique identifier for the profile within the Stedi platform. - **`items[].partnership.receiver`** (`object`) (required): The entity that is receiving the transaction. - **`items[].partnership.receiver.profileId`** (`string`) (required): A unique identifier for the profile within the Stedi platform. - **`items[].x12`** (`object`): Details about the X12 EDI transaction. - **`items[].x12.metadata`** (`object`) (required): Metadata about the X12 EDI transaction, including information from the interchange, functional group, and transaction headers as well as the sender and receiver IDs. - **`items[].x12.metadata.interchange`** (`object`) (required): Data from the Interchange Control Header of the X12 EDI file. - **`items[].x12.metadata.interchange.acknowledgmentRequestedCode`** (`string`) (required): The value of [`ISA14`](https://www.stedi.com/edi/x12/segment/ISA#ISA-14) in the Interchange Control Header, which indicates whether the sender is requesting a [`TA1` Interchange Acknowledgment](https://www.stedi.com/edi/x12/segment/TA1). - **`items[].x12.metadata.interchange.controlNumber`** (`number`) (required): The control number in the Interchange Control Header. - **`items[].x12.metadata.functionalGroup`** (`object`) (required): Data from the Functional Group Header of the X12 EDI file. - **`items[].x12.metadata.functionalGroup.controlNumber`** (`number`) (required): The Group Control Number ([`GS06`](https://www.stedi.com/edi/x12/segment/GS#GS-06)). - **`items[].x12.metadata.functionalGroup.date`** (`string`) (required): The date in the Functional Group Header ([`GS04`](https://www.stedi.com/edi/x12/segment/GS#GS-04)), formatted as `YYYY-MM-DD`. For example, `2023-08-28`. - **`items[].x12.metadata.functionalGroup.functionalIdentifierCode`** (`string`) (required): The Functional Identifier Code ([`GS01`](https://www.stedi.com/edi/x12/segment/GS#GS-01)), which indicates the type of transaction. For example, `HC` for an 837 Healthcare Claim. - **`items[].x12.metadata.functionalGroup.time`** (`string`) (required): The Time ([`GS05`](https://www.stedi.com/edi/x12/segment/GS#GS-05)), formatted as `HH:MM:SS`. For example, `21:29:57`. - **`items[].x12.metadata.functionalGroup.release`** (`string`) (required): The Version/Release/Industry Identifier Code ([`GS08`](https://www.stedi.com/edi/x12/segment/GS#GS-08)), which indicates the version of the X12 standard used. For example, `005010X222A1`. - **`items[].x12.metadata.transaction`** (`object`) (required): Data from the Transaction Set Header of the X12 EDI file. - **`items[].x12.metadata.transaction.controlNumber`** (`string`) (required): The Transaction Set Control Number ([`ST02`](https://www.stedi.com/edi/x12/segment/ST#ST-02)). - **`items[].x12.metadata.transaction.transactionSetIdentifier`** (`string`) (required): The Transaction Set Identifier Code ([`ST01`](https://www.stedi.com/edi/x12/segment/ST#ST-01)), which indicates the type of transaction. For example, `837` for an 837 Healthcare Claim. - **`items[].x12.metadata.sender`** (`object`) (required): The Application Code and ISA ID for the profile. - **`items[].x12.metadata.sender.applicationCode`** (`string`) (required): The Application Code for the profile, which is used to identify the entity in the `GS` header of an EDI file. - **`items[].x12.metadata.sender.isa`** (`object`) (required): The Interchange ID and qualifier. - **`items[].x12.metadata.sender.isa.qualifier`** (`string`) (required): The Interchange Sender ID Qualifier, which indicates the type of identifier. For example, `ZZ` for a mutually defined identifier. - **`items[].x12.metadata.sender.isa.id`** (`string`) (required): The Interchange ID, which is the unique identifier for the entity in the EDI file. - **`items[].x12.metadata.receiver`** (`object`) (required): The Application Code and ISA ID for the profile. - **`items[].x12.metadata.receiver.applicationCode`** (`string`) (required): The Application Code for the profile, which is used to identify the entity in the `GS` header of an EDI file. - **`items[].x12.metadata.receiver.isa`** (`object`) (required): The Interchange ID and qualifier. - **`items[].x12.metadata.receiver.isa.qualifier`** (`string`) (required): The Interchange Sender ID Qualifier, which indicates the type of identifier. For example, `ZZ` for a mutually defined identifier. - **`items[].x12.metadata.receiver.isa.id`** (`string`) (required): The Interchange ID, which is the unique identifier for the entity in the EDI file. - **`items[].x12.transactionSetting`** (`object`): The IDs for the guide and transaction setting Stedi used to process the transaction. - **`items[].x12.transactionSetting.guideId`** (`string`): The unique identifier for the Stedi guide used to process the transaction. Stedi guides are machine-readable specifications for X12 EDI transactions. They describe how to structure and validate EDI files for each transaction type. - **`items[].x12.transactionSetting.transactionSettingId`** (`string`): The unique identifier for the transaction setting Stedi used to process the transaction. Transaction settings configure how Stedi processes specific transaction types, such as which Stedi guide to use and other processing options. If you're using the Stedi clearinghouse, Stedi automatically configures the required transaction settings for you when you set up your account. - **`items[].fragments`** (`object`): Details about fragments included in the transaction, if applicable. Fragments break large transactions into smaller parts for easier processing and management. - **`items[].fragments.keyName`** (`string`) (required): The JSON schema key name for the segment in the Stedi guide used to split the transaction into fragments. For example, in an 834 Health Care Benefit Enrollment and Maintenance, this would be `member_level_detail_INS_loop`. - **`items[].fragments.fragmentCount`** (`number`) (required): The total number of fragments in the transaction. - **`items[].fragments.batchSize`** (`number`) (required): The maximum size of each fragment in kilobytes (KB). Stedi uses this to automatically split large inbound transactions into fragments. - **`items[].translationErrors`** (`array of TranslationError objects`): Details about errors that prevented Stedi from processing the transaction. - **`items[].translationErrors[].context`** (`object`) - **`items[].translationErrors[].context.code`** (`string`): The error code. - **`items[].translationErrors[].context.schemaPath`** (`string`): The name of the JSON property where the error occurred. - **`items[].translationErrors[].mark`** (`object`): The location in the document where the problem occurred. May be a single index or a range. - **`items[].translationErrors[].mark.start`** (`object`) (required) - **`items[].translationErrors[].mark.start.line`** (`number`) (required): The line number in the document where the problem occurred. - **`items[].translationErrors[].mark.start.column`** (`number`) (required): The column number in the document where the problem occurred. - **`items[].translationErrors[].mark.end`** (`object`) - **`items[].translationErrors[].mark.end.line`** (`number`) (required): The line number in the document where the problem occurred. - **`items[].translationErrors[].mark.end.column`** (`number`) (required): The column number in the document where the problem occurred. - **`items[].translationErrors[].message`** (`string`) (required): A message describing the error that occurred during translation. - **`items[].businessIdentifiers`** (`array of BusinessIdentifier objects`): Any business identifiers extracted from the transaction. - **`items[].businessIdentifiers[].elementId`** (`string`) (required): The identifier of the element containing the business identifier in the EDI specification. - **`items[].businessIdentifiers[].element`** (`string`) (required): The element where the business identifier was found. For example, `BHT03` for 837 claims. - **`items[].businessIdentifiers[].name`** (`string`) (required): The friendly name of the business identifier. For example, `Originator Application Transaction Identifier`. - **`items[].businessIdentifiers[].value`** (`string`) (required): The value of the business identifier. **Example:** ```json { "items": [ { "direction": "INBOUND", "mode": "test", "status": "succeeded", "fileExecutionId": "95236a56-a020-4522-8fef-bcffcec0ec1d", "transactionId": "c8dd3a67-b8ca-4b0e-aa73-e0de82414b8f", "processedAt": "2025-04-02T21:30:15.801Z", "artifacts": [ { "artifactType": "application/edi-x12", "sizeBytes": 8374, "model": "transaction", "usage": "input", "url": "https://core.us.stedi.com/2023-08-01/transactions/112233344-b8ca-4h1e-aa73-123482414b8f/input" }, { "artifactType": "application/json", "sizeBytes": 76898, "model": "transaction", "usage": "output", "url": "https://core.us.stedi.com/2023-08-01/transactions/1115555-b8ca-1234-aa73-e0je82414hb8f/output" } ], "partnership": { "partnershipId": "stedi_test-sender", "partnershipType": "x12", "sender": { "profileId": "test-sender" }, "receiver": { "profileId": "stedi" } }, "businessIdentifiers": [ { "elementId": "127", "element": "BHT-03", "name": "Reference Identification", "value": "XXXXXX" } ], "x12": { "metadata": { "interchange": { "acknowledgmentRequestedCode": "0", "controlNumber": 1 }, "functionalGroup": { "controlNumber": 1, "release": "005010X222A1", "date": "2025-04-02", "time": "21:29:57", "functionalIdentifierCode": "HC" }, "transaction": { "controlNumber": "0001", "transactionSetIdentifier": "837" }, "receiver": { "applicationCode": "STEDI-TEST", "isa": { "qualifier": "ZZ", "id": "STEDI-TEST" } }, "sender": { "applicationCode": "TestSender", "isa": { "qualifier": "ZZ", "id": "TestSender" } } }, "transactionSetting": { "guideId": "01JQW6E5RSBSTKS3ZQ1SPR4019", "transactionSettingId": "01JQW6E72Q3HDXM40YYAQCBZDY" } } } ], "nextPageToken": "be08e5ba4bf36da9da27dcb651e64a6e5502685499994f354" } ``` #### 400 BadRequestException 400 response **Schema:** `BadRequestExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 409 ResourceUnderChangeException 409 response **Schema:** `ResourceUnderChangeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) #### 422 UnprocessableEntityException 422 response **Schema:** `UnprocessableEntityExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 500 ServiceException 500 response **Schema:** `ServiceExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`exceptionCause`** (`object`) - **`exceptionCause.name`** (`string`) - **`exceptionCause.message`** (`string`) - **`exceptionCause.stack`** (`string`) #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) # Retrieve Payer Source: https://www.stedi.com/docs/healthcare/api-reference/get-payer You can use this endpoint to retrieve a specific payer record with the Stedi payer ID (`stediId`). You can find the Stedi payer ID for any supported payer in the [Payer Network](https://www.stedi.com/healthcare/network). Note that you must supply the Stedi payer ID - this endpoint doesn't support querying with the primary payer ID or payer ID aliases. The payer record includes the payer's names, aliases, and supported use cases (medical, dental, or vision). It also contains supported transaction types and specifies whether [transaction enrollment](/healthcare/transaction-enrollment) is required. Payer records can change. If you store payer details in your own system, [refresh them at least once a day](/healthcare/supported-payers#refresh-payer-data). ## API Specification Retrieve a single payer record by its Stedi payer ID. **Endpoint:** `GET /payer/{stediId}` **Base URL:** `https://payers.us.stedi.com/2024-04-01` ### Parameters - **`stediId`** (path) (required): The Stedi payer ID, a unique identifier Stedi assigns to each payer that will never change. You can find the Stedi payer ID for any supported payer in the [Payer Network](https://www.stedi.com/healthcare/network). This must be the Stedi payer ID - querying with the primary payer ID or payer ID aliases isn't supported. - Type: `string` ### Responses #### 200 GetPayerRecord 200 response **Schema:** `GetPayerRecordResponseContent` **Properties:** - **`payer`** (`object`) (required) - **`payer.aliases`** (`array of strings`) (required): Alternative IDs associated with a payer. If a payer changes their `primaryPayerId`, aliases allow you to continue sending transactions to the payer using the old ID uninterrupted. - **`payer.avatarUrl`** (`string`): A URL pointing to an image file (`.png`, `.jpeg`, or `.jpg`) with the payer's logo. This is the same logo Stedi displays in the [Payer Network](https://www.stedi.com/healthcare/network). You can use this property to display payer logos in your system or application. This property is only returned when a payer logo is available. - **`payer.conciseName`** (`string`): A shorter version of the payer's display name for use in dense UI views. This property is only returned when a concise name is available for the payer. - **`payer.coverageTypes`** (`array of strings`): A list of insurance coverage types that indicates whether this payer supports transactions for medical coverage, dental coverage, vision coverage, or a combination of these. For example: `["medical"]` or `["medical", "dental", "vision"]`. When this array isn't in the response, it means Stedi hasn't classified the payer's coverage types yet, **not** that the payer doesn't support any coverage types. - **`payer.displayName`** (`string`) (required): The payer's business name, such as Cigna or Aetna. This is the name most commonly used to identify the payer. - **`payer.employerIdentificationNumbers`** (`array of strings`): Employer Identification Numbers (EINs) associated with this payer. - **`payer.enrollment`** (`object`): Information about enrollment requirements for the payer - **`payer.enrollment.ptanRequired`** (`boolean`): Whether a PTAN (Provider Transaction Access Number) is required for transaction enrollment. The Provider Transaction Access Number (PTAN) is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`payer.enrollment.transactionEnrollmentProcesses`** (`object`): Information about the transaction enrollment requirements and expected timeframes for each transaction type. - **`payer.enrollment.transactionEnrollmentProcesses.claimPayment`** (`object`): Details about the enrollment process for Electronic Remittance Advice (ERAs). - **`payer.enrollment.transactionEnrollmentProcesses.claimPayment.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.claimPayment.supportedAggregationPreferences`** (`array of strings`): Aggregation types this payer supports for 835 Electronic Remittance Advice (ERA) transactions. Payers can aggregate by the provider's NPI, tax ID (TIN), or both. - You can use this information to specify an `aggregationPreference` when submitting ERA enrollment requests. - This property is only returned when Stedi can determine the payer's supported aggregation types. - **`payer.enrollment.transactionEnrollmentProcesses.claimPayment.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.claimPayment.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer`** (`object`): Details about the enrollment process for Electronic Remittance Advice (ERA) with Electronic Funds Transfer (EFT). - **`payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry`** (`object`): Details about the enrollment process for real-time claim status requests. - **`payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits`** (`object`): Details about the enrollment process for coordination of benefits (COB) checks. - **`payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.dentalClaim`** (`object`): Details about the enrollment process for dental claim submission. - **`payer.enrollment.transactionEnrollmentProcesses.dentalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.dentalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.dentalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer`** (`object`): Details about the enrollment process for Electronic Funds Transfer (EFT). - **`payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry`** (`object`): Details about the enrollment process for eligibility checks. - **`payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.institutionalClaim`** (`object`): Details about the enrollment process for institutional claim submission. - **`payer.enrollment.transactionEnrollmentProcesses.institutionalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.institutionalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.institutionalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.professionalClaim`** (`object`): Details about the enrollment process for professional claim submission. - **`payer.enrollment.transactionEnrollmentProcesses.professionalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.professionalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.professionalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment`** (`object`): Details about the enrollment process for unsolicited claim attachments. - **`payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`payer.names`** (`array of strings`) (required): Alternative names associated with a payer. These additional names help you search for and identify payers using the name most familiar to your organization. - **`payer.operatingStates`** (`array of strings`): A list of US state codes, territories, or `NATIONAL` that indicates the geographic regions where this payer operates. For example: `["CA", "OR"]` for a regional payer, or `["NATIONAL"]` for a payer that operates in all 50 U.S. states. Supported territories are listed separately. When this array isn't in the response, it means Stedi hasn't classified the payer's operating states yet. - **`payer.parentPayerGroupId`** (`string`): The identifier for the corporate or brand group to which the payer belongs. The parent payer group is organizational metadata only – it doesn't affect routing, enrollment, or transaction support. Payers sharing a parent payer group may have different enrollment processes or other behaviors. This property is only returned when the payer has a parent payer group. - **`payer.parentPayerGroupName`** (`string`): The name of the corporate or brand group to which the payer belongs. The parent payer group is organizational metadata only – it doesn't affect routing, enrollment, or transaction support. Payers sharing a parent payer group may have different enrollment processes or other behaviors. This property is only returned when the payer has a parent payer group. - **`payer.primaryPayerId`** (`string`) (required): The most commonly used ID for a payer. This value often corresponds to the name the payer uses internally and provides to patients on member ID cards. - **`payer.programs`** (`array of strings`) (required): A list of insurance programs that this payer participates in. For example: `["MEDICAID", "MEDICARE"]`. If Stedi hasn't assigned any programs to this payer, this array is empty. - **`payer.stediId`** (`string`) (required): A unique ID that Stedi assigned to this payer and uses internally for routing requests. This ID will not change even if the `primaryPayerId` is updated. - **`payer.transactionSupport`** (`object`) (required): Whether the following transaction types are supported: 270 eligibility checks, 276/277 claim status requests, 837 claims (professional, dental, institutional), 835 ERAs (claim payments), 275 unsolicited claim attachments, coordination of benefits checks, Electronic Funds Transfer (EFT), and 835 ERA with Electronic Funds Transfer (EFT). If the value is `ENROLLMENT_REQUIRED`, Stedi supports the transaction type, but you must [enroll with the payer](https://www.stedi.com/docs/healthcare/supported-payers#enrollment) first. - **`payer.transactionSupport.claimPayment`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.claimPaymentAdviceWithElectronicFundsTransfer`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.claimStatus`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.claimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.coordinationOfBenefits`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.dentalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.electronicFundsTransfer`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.eligibilityCheck`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.institutionalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.professionalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.transactionSupport.unsolicitedClaimAttachment`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`payer.urls`** (`object`): URLs associated with a payer. - **`payer.urls.website`** (`string`): The payer's website URL. **Example:** ```json { "payer": { "aliases": [ "00420", "13123", "1584", "4714", "95655", "MEDGL", "MEDGLD", "MEDIGOLD" ], "avatarUrl": "https://prod-payer-avatars.payers.us.stedi.com/YKHRB/avatar.png?v=1766600157693", "coverageTypes": [ "dental", "medical" ], "displayName": "Trinity Health Plan", "enrollment": { "ptanRequired": false, "transactionEnrollmentProcesses": { "claimPayment": { "requestedEffectiveDate": "NOT_SUPPORTED", "supportedAggregationPreferences": [ "NPI", "TIN" ], "timeframe": "DAYS", "type": "ONE_CLICK" } } }, "names": [ "MediGold", "Medigold Health Plans", "Mount Carmel Health Plan", "Mount Carmel MediGold", "Trinity Health Plan of Michigan" ], "operatingStates": [ "ID", "IA", "MI", "NY", "OH" ], "parentPayerGroupId": "GTRSH", "parentPayerGroupName": "Trinity Health", "primaryPayerId": "95655", "programs": [ "MEDICARE" ], "stediId": "YKHRB", "transactionSupport": { "claimPayment": "ENROLLMENT_REQUIRED", "claimPaymentAdviceWithElectronicFundsTransfer": "NOT_SUPPORTED", "claimStatus": "SUPPORTED", "claimSubmission": "SUPPORTED", "coordinationOfBenefits": "NOT_SUPPORTED", "dentalClaimSubmission": "NOT_SUPPORTED", "electronicFundsTransfer": "NOT_SUPPORTED", "eligibilityCheck": "SUPPORTED", "institutionalClaimSubmission": "SUPPORTED", "professionalClaimSubmission": "SUPPORTED", "unsolicitedClaimAttachment": "NOT_SUPPORTED" }, "urls": { "website": "https://www.thpmedicare.org" } } } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # List Payers CSV Source: https://www.stedi.com/docs/healthcare/api-reference/get-payers-csv You can use this endpoint to retrieve Payer IDs, determine which transactions each payer supports, and check whether [transaction enrollment](/healthcare/transaction-enrollment) is required for the transaction types you plan to send and receive. You can also find a searchable list of payers in the [Payer Network](https://www.stedi.com/healthcare/network). Payer records can change. If you store payer details in your own system, [refresh them at least once a day](/healthcare/supported-payers#refresh-payer-data). ## API Specification List Stedi's supported payers in CSV format **Endpoint:** `GET /payers/csv` **Base URL:** `https://payers.us.stedi.com/2024-04-01` ### Responses #### 200 ListPayerRecordsCsv 200 response #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # List Payers JSON Source: https://www.stedi.com/docs/healthcare/api-reference/get-payers You can use this endpoint to retrieve Payer IDs, determine which transactions each payer supports, and check whether [transaction enrollment](/healthcare/transaction-enrollment) is required for the transaction types you plan to send and receive. You can also find a searchable list of payers in the [Payer Network](https://www.stedi.com/healthcare/network). Payer records can change. If you store payer details in your own system, [refresh them at least once a day](/healthcare/supported-payers#refresh-payer-data). ## API Specification List Stedi's supported payers in JSON format **Endpoint:** `GET /payers` **Base URL:** `https://payers.us.stedi.com/2024-04-01` ### Parameters - **`pageSize`** (query): The maximum number of elements to return per page. If not set, Stedi returns all payers in a single response (no pagination). - Type: `integer` - **`pageToken`** (query): The `nextPageToken` value from a previous response. You can use this to get the next page of results. If not set, Stedi returns the first page of results. - Type: `string` ### Responses #### 200 ListPayerRecords 200 response **Schema:** `ListPayerRecordsResponseContent` **Properties:** - **`items`** (`array of PayerRecord objects`) (required): Payers that Stedi supports for each transaction type. Results are returned in alphabetical order of the Stedi ID. - **`items[].aliases`** (`array of strings`) (required): Alternative IDs associated with a payer. If a payer changes their `primaryPayerId`, aliases allow you to continue sending transactions to the payer using the old ID uninterrupted. - **`items[].avatarUrl`** (`string`): A URL pointing to an image file (`.png`, `.jpeg`, or `.jpg`) with the payer's logo. This is the same logo Stedi displays in the [Payer Network](https://www.stedi.com/healthcare/network). You can use this property to display payer logos in your system or application. This property is only returned when a payer logo is available. - **`items[].conciseName`** (`string`): A shorter version of the payer's display name for use in dense UI views. This property is only returned when a concise name is available for the payer. - **`items[].coverageTypes`** (`array of strings`): A list of insurance coverage types that indicates whether this payer supports transactions for medical coverage, dental coverage, vision coverage, or a combination of these. For example: `["medical"]` or `["medical", "dental", "vision"]`. When this array isn't in the response, it means Stedi hasn't classified the payer's coverage types yet, **not** that the payer doesn't support any coverage types. - **`items[].displayName`** (`string`) (required): The payer's business name, such as Cigna or Aetna. This is the name most commonly used to identify the payer. - **`items[].employerIdentificationNumbers`** (`array of strings`): Employer Identification Numbers (EINs) associated with this payer. - **`items[].enrollment`** (`object`): Information about enrollment requirements for the payer - **`items[].enrollment.ptanRequired`** (`boolean`): Whether a PTAN (Provider Transaction Access Number) is required for transaction enrollment. The Provider Transaction Access Number (PTAN) is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`items[].enrollment.transactionEnrollmentProcesses`** (`object`): Information about the transaction enrollment requirements and expected timeframes for each transaction type. - **`items[].enrollment.transactionEnrollmentProcesses.claimPayment`** (`object`): Details about the enrollment process for Electronic Remittance Advice (ERAs). - **`items[].enrollment.transactionEnrollmentProcesses.claimPayment.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.claimPayment.supportedAggregationPreferences`** (`array of strings`): Aggregation types this payer supports for 835 Electronic Remittance Advice (ERA) transactions. Payers can aggregate by the provider's NPI, tax ID (TIN), or both. - You can use this information to specify an `aggregationPreference` when submitting ERA enrollment requests. - This property is only returned when Stedi can determine the payer's supported aggregation types. - **`items[].enrollment.transactionEnrollmentProcesses.claimPayment.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.claimPayment.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer`** (`object`): Details about the enrollment process for Electronic Remittance Advice (ERA) with Electronic Funds Transfer (EFT). - **`items[].enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.claimStatusInquiry`** (`object`): Details about the enrollment process for real-time claim status requests. - **`items[].enrollment.transactionEnrollmentProcesses.claimStatusInquiry.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.claimStatusInquiry.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.claimStatusInquiry.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.coordinationOfBenefits`** (`object`): Details about the enrollment process for coordination of benefits (COB) checks. - **`items[].enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.dentalClaim`** (`object`): Details about the enrollment process for dental claim submission. - **`items[].enrollment.transactionEnrollmentProcesses.dentalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.dentalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.dentalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.electronicFundsTransfer`** (`object`): Details about the enrollment process for Electronic Funds Transfer (EFT). - **`items[].enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.eligibilityInquiry`** (`object`): Details about the enrollment process for eligibility checks. - **`items[].enrollment.transactionEnrollmentProcesses.eligibilityInquiry.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.eligibilityInquiry.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.eligibilityInquiry.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.institutionalClaim`** (`object`): Details about the enrollment process for institutional claim submission. - **`items[].enrollment.transactionEnrollmentProcesses.institutionalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.institutionalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.institutionalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.professionalClaim`** (`object`): Details about the enrollment process for professional claim submission. - **`items[].enrollment.transactionEnrollmentProcesses.professionalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.professionalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.professionalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment`** (`object`): Details about the enrollment process for unsolicited claim attachments. - **`items[].enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].names`** (`array of strings`) (required): Alternative names associated with a payer. These additional names help you search for and identify payers using the name most familiar to your organization. - **`items[].operatingStates`** (`array of strings`): A list of US state codes, territories, or `NATIONAL` that indicates the geographic regions where this payer operates. For example: `["CA", "OR"]` for a regional payer, or `["NATIONAL"]` for a payer that operates in all 50 U.S. states. Supported territories are listed separately. When this array isn't in the response, it means Stedi hasn't classified the payer's operating states yet. - **`items[].parentPayerGroupId`** (`string`): The identifier for the corporate or brand group to which the payer belongs. The parent payer group is organizational metadata only – it doesn't affect routing, enrollment, or transaction support. Payers sharing a parent payer group may have different enrollment processes or other behaviors. This property is only returned when the payer has a parent payer group. - **`items[].parentPayerGroupName`** (`string`): The name of the corporate or brand group to which the payer belongs. The parent payer group is organizational metadata only – it doesn't affect routing, enrollment, or transaction support. Payers sharing a parent payer group may have different enrollment processes or other behaviors. This property is only returned when the payer has a parent payer group. - **`items[].primaryPayerId`** (`string`) (required): The most commonly used ID for a payer. This value often corresponds to the name the payer uses internally and provides to patients on member ID cards. - **`items[].programs`** (`array of strings`) (required): A list of insurance programs that this payer participates in. For example: `["MEDICAID", "MEDICARE"]`. If Stedi hasn't assigned any programs to this payer, this array is empty. - **`items[].stediId`** (`string`) (required): A unique ID that Stedi assigned to this payer and uses internally for routing requests. This ID will not change even if the `primaryPayerId` is updated. - **`items[].transactionSupport`** (`object`) (required): Whether the following transaction types are supported: 270 eligibility checks, 276/277 claim status requests, 837 claims (professional, dental, institutional), 835 ERAs (claim payments), 275 unsolicited claim attachments, coordination of benefits checks, Electronic Funds Transfer (EFT), and 835 ERA with Electronic Funds Transfer (EFT). If the value is `ENROLLMENT_REQUIRED`, Stedi supports the transaction type, but you must [enroll with the payer](https://www.stedi.com/docs/healthcare/supported-payers#enrollment) first. - **`items[].transactionSupport.claimPayment`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.claimPaymentAdviceWithElectronicFundsTransfer`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.claimStatus`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.claimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.coordinationOfBenefits`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.dentalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.electronicFundsTransfer`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.eligibilityCheck`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.institutionalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.professionalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].transactionSupport.unsolicitedClaimAttachment`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].urls`** (`object`): URLs associated with a payer. - **`items[].urls.website`** (`string`): The payer's website URL. - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. **Example:** ```json { "items": [ { "aliases": [ "00420", "13123", "1584", "4714", "95655", "MEDGL", "MEDGLD", "MEDIGOLD" ], "avatarUrl": "https://prod-payer-avatars.payers.us.stedi.com/YKHRB/avatar.png?v=1766600157693", "coverageTypes": [ "dental", "medical" ], "displayName": "Trinity Health Plan", "enrollment": { "ptanRequired": false, "transactionEnrollmentProcesses": { "claimPayment": { "requestedEffectiveDate": "NOT_SUPPORTED", "supportedAggregationPreferences": [ "NPI", "TIN" ], "timeframe": "DAYS", "type": "ONE_CLICK" } } }, "names": [ "MediGold", "Medigold Health Plans", "Mount Carmel Health Plan", "Mount Carmel MediGold", "Trinity Health Plan of Michigan" ], "operatingStates": [ "ID", "IA", "MI", "NY", "OH" ], "parentPayerGroupId": "GTRSH", "parentPayerGroupName": "Trinity Health", "primaryPayerId": "95655", "programs": [ "MEDICARE" ], "stediId": "YKHRB", "transactionSupport": { "claimPayment": "ENROLLMENT_REQUIRED", "claimPaymentAdviceWithElectronicFundsTransfer": "NOT_SUPPORTED", "claimStatus": "SUPPORTED", "claimSubmission": "SUPPORTED", "coordinationOfBenefits": "NOT_SUPPORTED", "dentalClaimSubmission": "NOT_SUPPORTED", "electronicFundsTransfer": "NOT_SUPPORTED", "eligibilityCheck": "SUPPORTED", "institutionalClaimSubmission": "SUPPORTED", "professionalClaimSubmission": "SUPPORTED", "unsolicitedClaimAttachment": "NOT_SUPPORTED" }, "urls": { "website": "https://www.thpmedicare.org" } } ], "nextPageToken": "yrZ3we9982etYlMgmw==" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # CMS-1500 PDF: Business Identifier Source: https://www.stedi.com/docs/healthcare/api-reference/get-pdf-1500-business-identifier This endpoint uses a business identifier to retrieve autogenerated CMS-1500 Claim Form PDFs for submitted 837P professional claims. 1. Call this endpoint with the `businessId` query parameter set to the claim's correlation ID. The correlation ID is returned as the `claimReference.correlationId` in the synchronous response Stedi returns when you submit a professional claim. 2. The endpoint returns an array of PDFs for all claims with the specified `businessId` value. PDFs are returned as a base64 encoded string. To view a PDF, decode the base64 string and save it to a file with a `.pdf` extension. This endpoint isn't compatible with the [Create Professional Claim (CMS-1500) JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint. You can use it with the [Professional Claims (837P) JSON - Legacy](/healthcare/api-reference/post-healthcare-claims) and [Professional Claims (837P) Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) endpoints. ## API Specification Retrieve a Stedi generatedCMS-1500 Claim Form PDF for a submitted 837P (professional) claim by business identifier **Endpoint:** `GET /export/pdf` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`businessId`** (query) (required): The business identifier for the claim PDF you want to retrieve. This value is returned as the `claimReference.correlationId` in the synchronous response Stedi returns when you submit a professional claim. - Type: `string` - **`background`** (query): If false, the generated PDF will only contain the form data on a white background, suitable for printing on pre-printed forms. The default is true. - Type: `boolean` ### Responses #### 200 ExportPDF 200 response **Schema:** `ExportPDFResponseContent` **Properties:** - **`errors`** (`array of PDFError objects`): Errors that prevented Stedi from returning one or more PDFs for the specified `businessId`. This array may be empty if there were no errors. - **`errors[].error`** (`string`): A message indicating the type of error that occurred. - **`errors[].transactionId`** (`string`): A unique identifier for the claim with one or more PDF errors. - **`pdfs`** (`array of PDFData objects`): Data for PDF files Stedi generated for the specified `businessId`. This array may be empty if there are no PDFs available for the specified `businessId`. It may also contain multiple PDFs if there is more than one claim with the same `businessId` value. - **`pdfs[].data`** (`string`): A base64 encoded string of the CMS-1500 Claim Form PDF. To render the PDF, you must decode the base64 string and save it to a file with a `.pdf` extension. - **`pdfs[].transactionId`** (`string`): A unique identifier for the processed claim associated with the specified `businessId`. This ID is included in the transaction processed event for each claim, which you can receive automatically through Stedi [webhooks](https://www.stedi.com/docs/healthcare/configure-webhooks). You can also retrieve this ID through the [Poll Transactions endpoint](https://www.stedi.com/docs/healthcare/api-reference/get-poll-transactions). **Example:** ```json { "errors": [ { "error": "No artifacts found for transaction", "transactionId": "a10b3344-7288-484a-8dbb-b240c123c767" } ], "pdfs": [ { "data": "JVBERi0xLjcKJYGBgYEKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMAo ...", "transactionId": "a10b1111-7233-484c-8dee-b240c590c767" } ] } ``` #### 400 ExportPDF400Error 400 response **Schema:** `ExportPDF400ErrorResponseContent` #### 403 ExportPDF403Error 403 response **Schema:** `ExportPDF403ErrorResponseContent` #### 404 ExportPDF404Error 404 response **Schema:** `ExportPDF404ErrorResponseContent` #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # CMS-1500 PDF: Transaction ID Source: https://www.stedi.com/docs/healthcare/api-reference/get-pdf-1500 This endpoint uses a claim's `transactionId` to retrieve autogenerated CMS-1500 Claim Form PDFs for submitted 837P professional claims. 1. Call this endpoint with the `transactionId` path parameter set to the claim's transaction ID. Stedi includes this ID in the transaction processed event for the claim, which you can receive automatically through Stedi [event destinations](/healthcare/event-destinations-configure). You can also retrieve this ID through the [Poll Transactions](/healthcare/api-reference/get-poll-transactions) endpoint. 2. The endpoint returns the PDF data as a base64 encoded string. To view the PDF, decode the base64 string and save it to a file with a `.pdf` extension. This endpoint isn't compatible with the [Create Professional Claim (CMS-1500) JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint. You can use it with the [Professional Claims (837P) JSON - Legacy](/healthcare/api-reference/post-healthcare-claims) and [Professional Claims (837P) Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) endpoints. ## API Specification Retrieve the generated CMS-1500 Claim Form PDF for a submitted 837P professional claim **Endpoint:** `GET /export/{transactionId}/1500/pdf` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`transactionId`** (path) (required): A unique identifier for the processed claim within Stedi. This ID is included in the transaction processed event for the claim, which you can receive automatically through Stedi [webhooks](https://www.stedi.com/docs/healthcare/configure-webhooks). You can also retrieve this ID through the [Poll Transactions endpoint](https://www.stedi.com/docs/healthcare/api-reference/get-poll-transactions). - Type: `string` - **`background`** (query): If false, the generated PDF will only contain the form data on a white background, suitable for printing on pre-printed forms. The default is true. - Type: `boolean` ### Responses #### 200 GetPDF1500 200 response #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Poll transactions Source: https://www.stedi.com/docs/healthcare/api-reference/get-poll-transactions This endpoint returns details about transactions that Stedi processed after the specified `startDateTime`. You can use this endpoint to poll for new 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA) transactions in your account. Visit [Poll for transactions](/healthcare/receive-claim-responses#poll-for-transactions) for a step-by-step guide. ## Results [#results] Transactions are ordered from oldest to newest according to the `processedAt` property. This is _exclusive_ of the `startDateTime`. For example, if the provided `startDateTime` is `2023-08-10T18:00:00Z`, a transaction processed at exactly that time would not be included in the results. There is also a fifteen-second window where newly created transactions are excluded, meaning Stedi returns results up to fifteen seconds before the time of your request. This functionality accounts for any network latency or clock drift within the systems to ensure you don't miss any transactions. ## Polling with page tokens [#polling-with-page-tokens] We **don't** recommend polling using `startDateTime` only. Due to the exclusive nature of `startDateTime`, you could potentially miss a transaction if two transactions occur at the _exact_ same time and are on the edge of a pagination. Instead, you should use `pageToken`. After the initial request, you can poll again immediately using `pageToken` to continue iterating through the pages of transactions. The endpoint always returns a `nextPageToken`, regardless of whether additional transactions match the request criteria. If the `items` array is empty, continue using the provided `nextPageToken` to poll for new transactions. New transactions will be returned when available. We recommend storing `pageToken` values as part of your polling process. They don't expire, allowing you to start from that point in the transaction stream again if you need to catch a system up to date or recover from a failure. Note that `pageToken` values are unique per request, opaque, and shouldn't be parsed or modified in any way. They are not guaranteed to be in any particular format, and may change in the future. ## Overlap your polling window [#overlap-your-polling-window] We recommend starting your polling window at least one day before your last known processed transaction. While the `processedAt` timestamp is generally immutable and monotonic, overlapping your polling window ensures you don't miss edge cases, such as: - Transactions that occur at the exact same time. - Transactions that fall on pagination boundaries. - Transactions that may be processed slightly out of order due to network latency or system delays. You'll need to track which transactions you've already processed to filter out duplicates. ## API Specification Poll for new transactions that Stedi has processed. **Endpoint:** `GET /polling/transactions` **Base URL:** `https://core.us.stedi.com/2023-08-01` ### Parameters - **`pageSize`** (query): The maximum number of elements to return in a page. You can set this to a maximum of 500 elements. If not specified, the default is 100. - Type: `number` - **`pageToken`** (query): A token returned by a previous call to this operation in the `nextPageToken`. If not specified, Stedi returns the first page of results. You must supply either this property or `startDateTime` in every request. - Type: `string` - **`startDateTime`** (query): An ISO 8601 formatted string. For example `2023-08-28T00:00:00Z`. It must be at least one minute in the past. Stedi returns transactions processed after this time. You must supply either this property or `pageToken` in every request. - Type: `string` ### Responses #### 200 ListPollingTransactions 200 response **Schema:** `ListPollingTransactionsResponseContent` **Properties:** - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. - **`items`** (`array of TransactionSummary objects`) (required) - **`items[].transactionId`** (`string`) (required): A unique identifier for the processed transaction within Stedi. This ID is included in the transaction processed event. You can also retrieve it manually from the transaction's details page within the Stedi portal. - **`items[].fileExecutionId`** (`string`) (required): A unique identifier for the processed file within Stedi. This ID is included in the transaction processed event. You can also retrieve it manually from the file's details page in the Stedi portal. - **`items[].status`** (`string`) (required): A status indicating whether Stedi was able to successfully process the transaction. - Allowed values: `failed`, `succeeded` - **`items[].direction`** (`string`) (required): The direction of the transaction. Inbound transactions are those you receive from a payer, provider, or other trading partner. Outbound transactions are those you send to a payer, provider, or other trading partner. - Allowed values: `INBOUND`, `OUTBOUND`, `UNKNOWN` - **`items[].mode`** (`string`) (required): Indicates whether the transaction contains test or production data. Stedi determines this from the value in [`ISA15` Usage Indicator Code](https://www.stedi.com/edi/x12/segment/ISA#ISA-15). - Allowed values: `test`, `production`, `other` - **`items[].processedAt`** (`string`) (required): The date and time when Stedi processed the transaction, in ISO 8601 format. For example, `2023-08-28T00:00:00Z`. - **`items[].artifacts`** (`array of Artifact objects`) (required): A list of artifacts related to the transaction. - **`items[].artifacts[].artifactType`** (`string`) (required): The format of the artifact. - Allowed values: `text/csv`, `application/edifact`, `application/filepart`, `application/json`, `application/pdf`, `text/psv`, `text/tsv`, `application/edi-x12`, `application/xml`, `application/zip`, `image/jpeg`, `image/png`, `image/tiff`, `text/plain`, `unknown` - **`items[].artifacts[].usage`** (`string`) (required): The type of data the artifact contains. For example, an input artifact represents the original data Stedi received before processing, while an output artifact represents the processed data. For example, for an inbound 835 ERA from a payer, the input artifact would be the original X12 EDI, and the output artifact would be the JSON representation of the ERA. - Allowed values: `attachment`, `input`, `metadata`, `output` - **`items[].artifacts[].sizeBytes`** (`number`) (required): The size of the artifact in bytes. - **`items[].artifacts[].url`** (`string`) (required): A URL to download the artifact. - **`items[].artifacts[].model`** (`string`) (required): The model of the artifact, which indicates the type of process or operation it represents. For example, an execution artifact represents a file that was processed, a fragment artifact represents a part of a larger transaction, and a fault artifact represents an error that occurred during processing. - Allowed values: `execution`, `fragment`, `transaction`, `fault` - **`items[].partnership`** (`object`) (required): Information about the associated partnership. A partnership describes all aspects of the EDI relationship between two profiles in your Stedi account, such as which transaction sets they will exchange and other important information for processing EDI files. If you're sending or receiving transactions through the Stedi clearinghouse, Stedi configures the necessary partnership for you automatically when you set up your account. - **`items[].partnership.partnershipId`** (`string`) (required): The unique identifier for the partnership within the Stedi platform. A partnership describes all aspects of the EDI relationship between two profiles in your Stedi account, such as which transaction sets they will exchange and other important information for processing EDI files. If you're sending or receiving transactions through the Stedi clearinghouse, Stedi configures the necessary partnerships for you automatically when you set up your account. - **`items[].partnership.partnershipType`** (`string`) (required): The type of partnership, which determines the EDI standard used for exchanging transactions. - Allowed values: `x12`, `edifact` - **`items[].partnership.sender`** (`object`) (required): The entity that initiated the transaction. - **`items[].partnership.sender.profileId`** (`string`) (required): A unique identifier for the profile within the Stedi platform. - **`items[].partnership.receiver`** (`object`) (required): The entity that is receiving the transaction. - **`items[].partnership.receiver.profileId`** (`string`) (required): A unique identifier for the profile within the Stedi platform. - **`items[].x12`** (`object`): Details about the X12 EDI transaction. - **`items[].x12.metadata`** (`object`) (required): Metadata about the X12 EDI transaction, including information from the interchange, functional group, and transaction headers as well as the sender and receiver IDs. - **`items[].x12.metadata.interchange`** (`object`) (required): Data from the Interchange Control Header of the X12 EDI file. - **`items[].x12.metadata.interchange.acknowledgmentRequestedCode`** (`string`) (required): The value of [`ISA14`](https://www.stedi.com/edi/x12/segment/ISA#ISA-14) in the Interchange Control Header, which indicates whether the sender is requesting a [`TA1` Interchange Acknowledgment](https://www.stedi.com/edi/x12/segment/TA1). - **`items[].x12.metadata.interchange.controlNumber`** (`number`) (required): The control number in the Interchange Control Header. - **`items[].x12.metadata.functionalGroup`** (`object`) (required): Data from the Functional Group Header of the X12 EDI file. - **`items[].x12.metadata.functionalGroup.controlNumber`** (`number`) (required): The Group Control Number ([`GS06`](https://www.stedi.com/edi/x12/segment/GS#GS-06)). - **`items[].x12.metadata.functionalGroup.date`** (`string`) (required): The date in the Functional Group Header ([`GS04`](https://www.stedi.com/edi/x12/segment/GS#GS-04)), formatted as `YYYY-MM-DD`. For example, `2023-08-28`. - **`items[].x12.metadata.functionalGroup.functionalIdentifierCode`** (`string`) (required): The Functional Identifier Code ([`GS01`](https://www.stedi.com/edi/x12/segment/GS#GS-01)), which indicates the type of transaction. For example, `HC` for an 837 Healthcare Claim. - **`items[].x12.metadata.functionalGroup.time`** (`string`) (required): The Time ([`GS05`](https://www.stedi.com/edi/x12/segment/GS#GS-05)), formatted as `HH:MM:SS`. For example, `21:29:57`. - **`items[].x12.metadata.functionalGroup.release`** (`string`) (required): The Version/Release/Industry Identifier Code ([`GS08`](https://www.stedi.com/edi/x12/segment/GS#GS-08)), which indicates the version of the X12 standard used. For example, `005010X222A1`. - **`items[].x12.metadata.transaction`** (`object`) (required): Data from the Transaction Set Header of the X12 EDI file. - **`items[].x12.metadata.transaction.controlNumber`** (`string`) (required): The Transaction Set Control Number ([`ST02`](https://www.stedi.com/edi/x12/segment/ST#ST-02)). - **`items[].x12.metadata.transaction.transactionSetIdentifier`** (`string`) (required): The Transaction Set Identifier Code ([`ST01`](https://www.stedi.com/edi/x12/segment/ST#ST-01)), which indicates the type of transaction. For example, `837` for an 837 Healthcare Claim. - **`items[].x12.metadata.sender`** (`object`) (required): The Application Code and ISA ID for the profile. - **`items[].x12.metadata.sender.applicationCode`** (`string`) (required): The Application Code for the profile, which is used to identify the entity in the `GS` header of an EDI file. - **`items[].x12.metadata.sender.isa`** (`object`) (required): The Interchange ID and qualifier. - **`items[].x12.metadata.sender.isa.qualifier`** (`string`) (required): The Interchange Sender ID Qualifier, which indicates the type of identifier. For example, `ZZ` for a mutually defined identifier. - **`items[].x12.metadata.sender.isa.id`** (`string`) (required): The Interchange ID, which is the unique identifier for the entity in the EDI file. - **`items[].x12.metadata.receiver`** (`object`) (required): The Application Code and ISA ID for the profile. - **`items[].x12.metadata.receiver.applicationCode`** (`string`) (required): The Application Code for the profile, which is used to identify the entity in the `GS` header of an EDI file. - **`items[].x12.metadata.receiver.isa`** (`object`) (required): The Interchange ID and qualifier. - **`items[].x12.metadata.receiver.isa.qualifier`** (`string`) (required): The Interchange Sender ID Qualifier, which indicates the type of identifier. For example, `ZZ` for a mutually defined identifier. - **`items[].x12.metadata.receiver.isa.id`** (`string`) (required): The Interchange ID, which is the unique identifier for the entity in the EDI file. - **`items[].x12.transactionSetting`** (`object`): The IDs for the guide and transaction setting Stedi used to process the transaction. - **`items[].x12.transactionSetting.guideId`** (`string`): The unique identifier for the Stedi guide used to process the transaction. Stedi guides are machine-readable specifications for X12 EDI transactions. They describe how to structure and validate EDI files for each transaction type. - **`items[].x12.transactionSetting.transactionSettingId`** (`string`): The unique identifier for the transaction setting Stedi used to process the transaction. Transaction settings configure how Stedi processes specific transaction types, such as which Stedi guide to use and other processing options. If you're using the Stedi clearinghouse, Stedi automatically configures the required transaction settings for you when you set up your account. - **`items[].fragments`** (`object`): Details about fragments included in the transaction, if applicable. Fragments break large transactions into smaller parts for easier processing and management. - **`items[].fragments.keyName`** (`string`) (required): The JSON schema key name for the segment in the Stedi guide used to split the transaction into fragments. For example, in an 834 Health Care Benefit Enrollment and Maintenance, this would be `member_level_detail_INS_loop`. - **`items[].fragments.fragmentCount`** (`number`) (required): The total number of fragments in the transaction. - **`items[].fragments.batchSize`** (`number`) (required): The maximum size of each fragment in kilobytes (KB). Stedi uses this to automatically split large inbound transactions into fragments. - **`items[].translationErrors`** (`array of TranslationError objects`): Details about errors that prevented Stedi from processing the transaction. - **`items[].translationErrors[].context`** (`object`) - **`items[].translationErrors[].context.code`** (`string`): The error code. - **`items[].translationErrors[].context.schemaPath`** (`string`): The name of the JSON property where the error occurred. - **`items[].translationErrors[].mark`** (`object`): The location in the document where the problem occurred. May be a single index or a range. - **`items[].translationErrors[].mark.start`** (`object`) (required) - **`items[].translationErrors[].mark.start.line`** (`number`) (required): The line number in the document where the problem occurred. - **`items[].translationErrors[].mark.start.column`** (`number`) (required): The column number in the document where the problem occurred. - **`items[].translationErrors[].mark.end`** (`object`) - **`items[].translationErrors[].mark.end.line`** (`number`) (required): The line number in the document where the problem occurred. - **`items[].translationErrors[].mark.end.column`** (`number`) (required): The column number in the document where the problem occurred. - **`items[].translationErrors[].message`** (`string`) (required): A message describing the error that occurred during translation. - **`items[].businessIdentifiers`** (`array of BusinessIdentifier objects`): Any business identifiers extracted from the transaction. - **`items[].businessIdentifiers[].elementId`** (`string`) (required): The identifier of the element containing the business identifier in the EDI specification. - **`items[].businessIdentifiers[].element`** (`string`) (required): The element where the business identifier was found. For example, `BHT03` for 837 claims. - **`items[].businessIdentifiers[].name`** (`string`) (required): The friendly name of the business identifier. For example, `Originator Application Transaction Identifier`. - **`items[].businessIdentifiers[].value`** (`string`) (required): The value of the business identifier. **Example:** ```json { "items": [ { "direction": "INBOUND", "mode": "test", "status": "succeeded", "fileExecutionId": "95236a56-a020-4522-8fef-bcffcec0ec1d", "transactionId": "c8dd3a67-b8ca-4b0e-aa73-e0de82414b8f", "processedAt": "2025-04-02T21:30:15.801Z", "artifacts": [ { "artifactType": "application/edi-x12", "sizeBytes": 8374, "model": "transaction", "usage": "input", "url": "https://core.us.stedi.com/2023-08-01/transactions/4443355-b8ca-4b0e-aa73-e0de12314b8f/input" }, { "artifactType": "application/json", "sizeBytes": 76898, "model": "transaction", "usage": "output", "url": "https://core.us.stedi.com/2023-08-01/transactions/111222333-b8ca-4b0e-aa73-e0de67454b8f/output" } ], "partnership": { "partnershipId": "local-clearinghouse-test", "partnershipType": "x12", "sender": { "profileId": "clearinghouse-test" }, "receiver": { "profileId": "local" } }, "businessIdentifiers": [ { "elementId": "127", "element": "BHT-03", "name": "Reference Identification", "value": "XXXXXX" } ], "x12": { "metadata": { "interchange": { "acknowledgmentRequestedCode": "0", "controlNumber": 1 }, "functionalGroup": { "controlNumber": 1, "release": "005010X222A1", "date": "2025-04-02", "time": "21:29:57", "functionalIdentifierCode": "HC" }, "transaction": { "controlNumber": "0001", "transactionSetIdentifier": "837" }, "receiver": { "applicationCode": "STEDI-TEST", "isa": { "qualifier": "ZZ", "id": "STEDI-TEST" } }, "sender": { "applicationCode": "TestSender", "isa": { "qualifier": "ZZ", "id": "TestSender" } } }, "transactionSetting": { "guideId": "01JQW6E5RSBSTKS3ZQ1SPR4019", "transactionSettingId": "01JQW6E72Q3HDXM40YYAQCBZDY" } } } ] } ``` #### 400 BadRequestException 400 response **Schema:** `BadRequestExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 409 ResourceUnderChangeException 409 response **Schema:** `ResourceUnderChangeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) #### 422 UnprocessableEntityException 422 response **Schema:** `UnprocessableEntityExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 500 ServiceException 500 response **Schema:** `ServiceExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`exceptionCause`** (`object`) - **`exceptionCause.name`** (`string`) - **`exceptionCause.message`** (`string`) - **`exceptionCause.stack`** (`string`) #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) # Retrieve Professional Claim (CMS-1500) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/get-professional-claim-json Retrieve a claim submission and map it to Stedi's JSON format. This endpoint is especially useful when building CMS-1500 form interfaces that need to handle resubmissions. You can retrieve the original claim data to pre-populate your form, allowing users to make corrections before resubmitting. 1. Call this endpoint with the submission ID. You can retrieve this ID from: - The `submissionId` property in the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint response. - The timeline items from the [Retrieve Claim Timeline](/healthcare/api-reference/get-claim-timeline) endpoint response. - A submission's details page in the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Stedi retrieves the claim data and maps it to Stedi's JSON format. 3. The endpoint returns the claim in JSON format, using the same structure as the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint. ## API Specification Retrieve a claim's data and map it to Stedi's CMS-1500 JSON format **Endpoint:** `GET /professional-claim-submissions/{id}` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Parameters - **`id`** (path) (required): A unique identifier for a specific submission of a claim within Stedi. Stedi generates a submission ID for the initial submission and then a new submission ID for every resubmission of the same claim. This is different from the claim ID, which doesn't change throughout the claim's lifecycle. You can retrieve this ID from the `submissionId` property in the [Create Professional Claim JSON endpoint](/healthcare/api-reference/post-create-professional-claim-json) response. - Type: `string` ### Responses #### 200 GetProfessionalClaimSubmission 200 response **Schema:** `GetProfessionalClaimSubmissionResponseContent` **Properties:** - **`claimId`** (`string`) (required): A unique identifier for the claim within Stedi. This ID stays the same throughout the claim's entire lifecycle. For example, the claim ID is the same for the initial submission and any resubmissions. This is how Stedi links a particular claim to responses, such as 277CA claim acknowledgments. - **`data`** (`object`) (required): A professional claim in the Stedi JSON format. - **`data.authorization`** (`object`) (required): Signature and assignment-of-benefits indicators for the claim. - **`data.authorization.insuredAuthorizesAssignment`** (`string`) (required): Whether the insured has authorized payment of benefits directly to the provider. - `YES`: The insured has authorized assignment of benefits. - `NO`: The insured has not authorized assignment of benefits. - `NOT_APPLICABLE`: Assignment of benefits does not apply, typically because there is no signature on file. - Allowed values: `NO`, `NOT_APPLICABLE`, `YES` - **`data.authorization.patientReleasesMedicalInfo`** (`string`) (required): Whether the provider has the patient's authorization to release medical information needed to process the claim. - `YES`: The provider has the patient's signed authorization to release medical information. - `INFORMED_CONSENT`: The provider has informed consent to release medical information, but the signed authorization has not been obtained. - Allowed values: `INFORMED_CONSENT`, `YES` - **`data.authorization.providerAcceptsAssignment`** (`string`) (required): Whether the billing provider agrees to be paid under the payer's terms. - `ASSIGNED`: The provider accepts assignment and agrees to accept the payer's payment as payment in full, minus any patient responsibility. - `NOT_ASSIGNED`: The provider does not accept assignment. The payer typically sends payment directly to the patient, who is then responsible for reimbursing the provider. - `CLINICAL_LAB_ONLY`: The provider accepts assignment for clinical laboratory services only. This is uncommon. - Allowed values: `ASSIGNED`, `CLINICAL_LAB_ONLY`, `NOT_ASSIGNED` - **`data.authorization.providerSignature`** (`string`) (required): Whether the provider has the rendering provider's signature on file. - `ON_FILE`: The provider has the rendering provider's signature on file. - `NOT_ON_FILE`: The provider does not have the rendering provider's signature on file. - Allowed values: `ON_FILE`, `NOT_ON_FILE` - **`data.billing`** (`object`) (required): Billing details for the claim, including the billing provider, service facility, tax identification, and charges. - **`data.billing.amountPaid`** (`string`): **[CMS-1500 Box 29]** The total amount the patient, or the patient's representative, has already paid toward services in this claim. This is the patient's payment only. Don't include amounts paid by other payers. - **`data.billing.billingProvider`** (`object`) (required): The person or organization that will receive payment for the claim from the payer. - **`data.billing.billingProvider.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`data.billing.billingProvider.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`data.billing.billingProvider.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`data.billing.billingProvider.address.city`** (`string`) (required): The city name. - **`data.billing.billingProvider.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`data.billing.billingProvider.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`data.billing.billingProvider.contact`** (`object`): A person or department to contact, with up to one phone number, email address, and fax number. Provide at least one way to reach the contact. - **`data.billing.billingProvider.contact.email`** (`string`): The contact's email address. - **`data.billing.billingProvider.contact.faxNumber`** (`string`): The contact's fax number. - **`data.billing.billingProvider.contact.name`** (`string`): The name of the contact person or department. When omitted, questions are directed to the entity itself. - **`data.billing.billingProvider.contact.phoneExtension`** (`string`): The extension for `phoneNumber`. - **`data.billing.billingProvider.contact.phoneNumber`** (`string`): The contact's phone number. - **`data.billing.billingProvider.identifiers`** (`object`): Identifiers for the billing provider. - **`data.billing.billingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 33b]** A commercial number assigned to the billing provider by the payer. Include only when the payer requires it in addition to the NPI, or when the provider has no NPI. - **`data.billing.billingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 33b]** A location number assigned to the billing provider by the payer. Include only when the payer requires it in addition to the NPI, or when the provider has no NPI. - **`data.billing.billingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 33a]** The billing provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). When the billing provider isn't assigned an NPI, supply `commercialNumber` or `locationNumber` instead. - **`data.billing.billingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 33b]** The billing provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`data.billing.billingProvider.identifiers.taxonomyCode`** (`string`): **[CMS-1500 Box 33b]** The billing provider's taxonomy code from the National Uniform Claim Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/), which identifies the provider's type and specialty. - **`data.billing.billingProvider.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`data.billing.billingProvider.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.billing.billingProvider.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`data.billing.billingProvider.name (variant 2).person.firstName`** (`string`): The person's first name. - **`data.billing.billingProvider.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.billing.billingProvider.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`data.billing.billingProvider.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.billing.patientControlNumber`** (`string`) (required): **[CMS-1500 Box 26]** The patient control number, a unique tracking ID you assign to the claim so you can correlate it with responses from the payer. The payer returns this ID in claim acknowledgments, Electronic Remittance Advice (ERAs), and claim status checks. We recommend using a random, 17-character alphanumeric string. - **`data.billing.serviceFacility`** (`object`): The facility where the patient received care, also called the service facility location. The address should be a physical location. - **`data.billing.serviceFacility.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`data.billing.serviceFacility.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`data.billing.serviceFacility.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`data.billing.serviceFacility.address.city`** (`string`) (required): The city name. - **`data.billing.serviceFacility.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`data.billing.serviceFacility.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`data.billing.serviceFacility.identifiers`** (`object`): Identifiers for the service facility. - **`data.billing.serviceFacility.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 32b]** A commercial number assigned to the facility by the payer. Include only when the payer requires it in addition to the NPI. - **`data.billing.serviceFacility.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 32b]** A location number assigned to the facility by the payer. Include only when the payer requires it in addition to the NPI. - **`data.billing.serviceFacility.identifiers.npi`** (`string`): **[CMS-1500 Box 32a]** The facility's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). Only required when the facility's NPI differs from the billing provider's NPI. Don't include when the service facility is the patient's home. - **`data.billing.serviceFacility.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 32b]** The facility's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`data.billing.serviceFacility.name`** (`any`) (required): A name that belongs to an organization. - **`data.billing.serviceFacility.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.billing.taxId`** (`any`) (required): The billing provider's federal tax identification number. Provide exactly one of `ein` or `ssn`. - **`data.billing.taxId (variant 1).ssn`** (`string`) (required): The billing provider's Social Security Number. Must be a string of exactly nine numbers with no separators. If you provide this, don't provide `ein`. - **`data.billing.taxId (variant 2).ein`** (`string`) (required): The billing provider's Employer Identification Number (EIN). Typically a string of exactly nine numbers with no separators, unless otherwise instructed by the payer. If you provide this, don't provide `ssn`. - **`data.billing.totalCharge`** (`string`) (required): **[CMS-1500 Box 28]** The total charge for the claim, equal to the sum of all service line charges. It is acceptable to set this to `0` (zero). - **`data.encounter`** (`object`) (required): Clinical details about the encounter, including diagnoses, related providers, relevant dates, and supporting information. - **`data.encounter.additionalDiagnosisCodes`** (`array of strings`): **[CMS-1500 Box 21]** Additional diagnoses for the claim beyond `primaryDiagnosisCode`, in order of importance. Use this for diagnoses that apply to the claim but are not tied to a specific service line; you don't need to repeat codes that already appear in a service line's `diagnosisCodes`. Stedi places these directly after the primary diagnosis in the claim's diagnosis list. - Use valid, billable codes at the highest level of specificity available. - Don't submit the decimal point (e.g., submit `I639` not `I63.9`). - Don't submit header codes (codes with fewer than three characters, such as `E10` for Type 1 diabetes). - **`data.encounter.attachments`** (`array of ProfessionalClaimSubmissionAttachment objects`): **[CMS-1500 Box 19]** Supporting documentation attached to the claim, such as medical records or operative notes. Include only when required by the payer. - **`data.encounter.attachments[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`data.encounter.attachments[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is required when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`data.encounter.attachments[].reportTypeCode`** (`string`) (required): The type of report being attached to the claim. Visit [Attachment report type codes](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of values and their descriptions. - Allowed values: `REPORT_JUSTIFYING_TREATMENT`, `DRUGS_ADMINISTERED`, `TREATMENT_DIAGNOSIS`, `INITIAL_ASSESSMENT`, `FUNCTIONAL_GOALS`, `PLAN_OF_TREATMENT`, `PROGRESS_REPORT`, `CONTINUED_TREATMENT`, `CHEMICAL_ANALYSIS`, `CERTIFIED_TEST_REPORT`, `JUSTIFICATION_FOR_ADMISSION`, `RECOVERY_PLAN`, `ALLERGIES_SENSITIVITIES`, `AUTOPSY_REPORT`, `AMBULANCE_CERTIFICATION`, `ADMISSION_SUMMARY`, `PRESCRIPTION`, `PHYSICIAN_ORDER`, `REFERRAL_FORM`, `BENCHMARK_TESTING_RESULTS`, `BASELINE`, `BLANKET_TEST_RESULTS`, `CHIROPRACTIC_JUSTIFICATION`, `CONSENT_FORMS`, `CERTIFICATION`, `DRUG_PROFILE`, `DENTAL_MODELS`, `DME_PRESCRIPTION`, `DIAGNOSTIC_REPORT`, `DISCHARGE_MONITORING`, `DISCHARGE_SUMMARY`, `EXPLANATION_OF_BENEFITS`, `HEALTH_CERTIFICATE`, `HEALTH_CLINIC_RECORDS`, `IMMUNIZATION_RECORD`, `STATE_IMMUNIZATION_RECORDS`, `LABORATORY_RESULTS`, `MEDICAL_RECORD_ATTACHMENT`, `MODELS`, `NURSING_NOTES`, `OPERATIVE_NOTE`, `OXYGEN_CONTENT_AVERAGING`, `ORDERS_TREATMENTS`, `PHYSICAL_EXAMINATION`, `OXYGEN_THERAPY_CERTIFICATION`, `SUPPORT_DATA`, `PATHOLOGY_REPORT`, `MEDICAL_HISTORY`, `PARENTERAL_ENTERAL_CERTIFICATION`, `PHYSICAL_THERAPY_NOTES`, `PROSTHETICS_ORTHOTIC_CERTIFICATION`, `PARAMEDICAL_RESULTS`, `PHYSICIAN_REPORT`, `PHYSICAL_THERAPY_CERTIFICATION`, `RADIOLOGY_FILMS`, `RADIOLOGY_REPORTS`, `TESTS_ANALYSIS_REPORT`, `RENEWABLE_OXYGEN_CONTENT`, `SYMPTOMS_DOCUMENT`, `DEATH_NOTIFICATION`, `PHOTOGRAPHS` - **`data.encounter.attachments[].transmissionCode`** (`string`) (required): How an attachment is transmitted to the payer. - `ELECTRONICALLY_ONLY`: The attachment is sent electronically only. - `BY_MAIL`: The attachment is sent by mail. - `BY_FAX`: The attachment is sent by fax. - `EMAIL`: The attachment is sent by email. - `FILE_TRANSFER`: The attachment is sent by file transfer. - `AVAILABLE_ON_REQUEST`: The attachment is held by the provider and made available to the payer on request. - Allowed values: `AVAILABLE_ON_REQUEST`, `BY_MAIL`, `ELECTRONICALLY_ONLY`, `EMAIL`, `FILE_TRANSFER`, `BY_FAX` - **`data.encounter.claimCodes`** (`array of strings`): **[CMS-1500 Box 10d]** Up to four National Uniform Claim Committee (NUCC) condition codes. A condition code is a two-character code that provides extra information about the patient's condition or the claim itself, such as whether the claim is part of disaster relief. For a list, visit the [NUCC Condition Codes](https://www.nucc.org/index.php/code-sets-mainmenu-41/condition-codes-mainmenu-38). - **`data.encounter.claimNote`** (`any`): **[CMS-1500 Box 19]** A free-text note with additional information about the claim. Provide exactly one note type. - **`data.encounter.claimNote (variant 1).additionalInformation`** (`string`) (required): Additional information that helps explain the claim, such as a special billing situation or extra context. Don't use this to describe unspecified procedure codes. - **`data.encounter.claimNote (variant 2).certificationNarrative`** (`string`) (required): A narrative that certifies medical necessity or another payer-required certification. - **`data.encounter.claimNote (variant 3).goalsRehabilitationOrDischargePlans`** (`string`) (required): Therapy or rehabilitation notes summarizing goals, rehabilitation potential, or discharge plans. - **`data.encounter.claimNote (variant 4).diagnosisDescription`** (`string`) (required): A description of the diagnosis, usually provided to clarify an unspecified or unlisted procedure code. - **`data.encounter.claimNote (variant 5).thirdPartyOrganization`** (`string`) (required): Information about a third-party organization related to the claim. - **`data.encounter.clinicalDates`** (`object`): Dates relevant to the patient's condition and care. Include only the dates that apply to the claim. - **`data.encounter.clinicalDates.accident`** (`string`): **[CMS-1500 Box 15]** The date of the accident related to this claim. Required when `patientCondition.isAutoAccidentRelated` or `patientCondition.isOtherAccidentRelated` is `true`, and when the condition is employment-related and resulted from an accident. - **`data.encounter.clinicalDates.acuteManifestationOfChronicCondition`** (`string`): **[CMS-1500 Box 15]** The date the patient first experienced acute symptoms of a chronic condition. Required for certain spinal manipulation claims billed to Medicare. - **`data.encounter.clinicalDates.assumedCare`** (`string`): **[CMS-1500 Box 15]** The date the provider assumed care of the patient, for shared-care arrangements. - **`data.encounter.clinicalDates.firstVisitOrConsultation`** (`string`): **[CMS-1500 Box 15]** The date of the patient's first visit or consultation, when required by the payer. - **`data.encounter.clinicalDates.hospitalization`** (`object`): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`data.encounter.clinicalDates.hospitalization.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`data.encounter.clinicalDates.hospitalization.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`data.encounter.clinicalDates.initialTreatment`** (`string`): **[CMS-1500 Box 15]** The date the patient first received treatment for the current condition. Required when this date impacts adjudication for services such as spinal manipulation, physical or occupational therapy, or pregnancy. - **`data.encounter.clinicalDates.lastMenstrualPeriod`** (`string`): **[CMS-1500 Box 14]** The date of the patient's last menstrual period (LMP) before pregnancy. Provide for claims related to a pregnancy. - **`data.encounter.clinicalDates.lastSeen`** (`string`): **[CMS-1500 Box 15]** The date the patient was last seen by the attending or supervising physician for the qualifying condition. Required for routine foot care services when this date impacts adjudication. - **`data.encounter.clinicalDates.lastWorked`** (`string`): **[CMS-1500 Box 15]** The last date the patient worked, for disability or workers' compensation claims. - **`data.encounter.clinicalDates.lastXray`** (`string`): **[CMS-1500 Box 15]** The date of the patient's last X-ray, for claims related to spinal manipulation. - **`data.encounter.clinicalDates.onsetOfCurrentIllness`** (`string`): **[CMS-1500 Box 14]** The date the patient first experienced acute symptoms of the current illness or injury. Required when a service in the claim is the first for a new illness or injury, when the claim is related to an employment or accident condition, or when the payer requires it. For an emergency, provide this date when it is known and differs from the date of service. - **`data.encounter.clinicalDates.prescription`** (`string`): **[CMS-1500 Box 15]** The date of the patient's hearing or vision prescription. Required for claims billing hearing devices or vision frames and lenses. - **`data.encounter.clinicalDates.relinquishedCare`** (`string`): **[CMS-1500 Box 15]** The date the provider relinquished care of the patient, for shared-care arrangements. - **`data.encounter.clinicalDates.repricerReceived`** (`string`): **[CMS-1500 Box 15]** The date the repricer received the claim, when applicable. - **`data.encounter.clinicalDates.returnedToWork`** (`string`): **[CMS-1500 Box 15]** The date the patient returned to work, for disability or workers' compensation claims. - **`data.encounter.clinicalDates.unableToWork`** (`object`): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`data.encounter.clinicalDates.unableToWork.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`data.encounter.clinicalDates.unableToWork.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`data.encounter.epsdtReferralCodes`** (`array of strings`): **[CMS-1500 Box 24h]** Early and Periodic Screening, Diagnosis, and Treatment (EPSDT) referral condition indicators for the claim. EPSDT is a Medicaid program that provides preventive health care services for children under age 21. - Include when the claim bills an EPSDT screening service, with the referral outcome of the screening. - Use `NOT_USED` when the screening did not result in a referral. - Mark services that resulted from a screening with `serviceLines[].isEpsdtRelated`. - **`data.encounter.patientCondition`** (`object`): Whether the patient's illness or injury is related to employment or an accident. - **`data.encounter.patientCondition.autoAccidentState`** (`string`): **[CMS-1500 Box 10b]** The two-letter state code where the automobile accident occurred. Required when `isAutoAccidentRelated` is `true`. - **`data.encounter.patientCondition.isAutoAccidentRelated`** (`boolean`): **[CMS-1500 Box 10b]** Whether the patient's condition is related to an automobile accident. When `true`, set `autoAccidentState`. Other insurance, such as automobile liability coverage, may be the primary payer. - **`data.encounter.patientCondition.isEmploymentRelated`** (`boolean`): **[CMS-1500 Box 10a]** Whether the patient's condition is related to their employment. - **`data.encounter.patientCondition.isOtherAccidentRelated`** (`boolean`): **[CMS-1500 Box 10c]** Whether the patient's condition is related to an accident other than an automobile accident. - **`data.encounter.primaryDiagnosisCode`** (`string`) (required): **[CMS-1500 Box 21]** The principal diagnosis for the claim, which describes the main reason for the encounter. Must be an [ICD-10-CM code](https://www.cdc.gov/nchs/icd/icd-10-cm/index.html). Stedi combines this with `additionalDiagnosisCodes` and the diagnosis codes on the service lines to form the claim's diagnosis list, which can hold at most 12 codes. - Use valid, billable codes at the highest level of specificity available. - Don't submit the decimal point (e.g., submit `I639` not `I63.9`). - Don't submit header codes (codes with fewer than three characters, such as `E10` for Type 1 diabetes). - **`data.encounter.primaryPlaceOfService`** (`string`): The primary place of service code identifying where the services were rendered. When omitted, it is inferred from the most common place of service across the claim's service lines. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`data.encounter.priorReferringProvider`** (`object`): A provider involved in referring the patient for the care on this claim. Each provider should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`data.encounter.priorReferringProvider.identifiers`** (`object`): Identifiers for a referring provider. - **`data.encounter.priorReferringProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the referring provider by the payer. Include only when the payer requires it in addition to the NPI. - **`data.encounter.priorReferringProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The referring provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`data.encounter.priorReferringProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The referring provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`data.encounter.priorReferringProvider.name`** (`any`) (required): A name that belongs to a person. - **`data.encounter.priorReferringProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`data.encounter.priorReferringProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`data.encounter.priorReferringProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.encounter.priorReferringProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`data.encounter.priorReferringProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.encounter.referenceNumbers`** (`object`): Payer-issued reference numbers that apply to the entire claim. - **`data.encounter.referenceNumbers.clia`** (`string`): **[CMS-1500 Box 23]** The Clinical Laboratory Improvement Amendments (CLIA) certification number. Required for all CLIA-certified facilities performing CLIA-covered laboratory services. When the claim contains both in-house and outsourced laboratory services, use the CLIA number for services performed by the billing or rendering provider. - **`data.encounter.referenceNumbers.mammographyCertification`** (`string`): **[CMS-1500 Box 23]** The facility's six-digit FDA Mammography Quality Standards Act (MQSA) certification number. Required when mammography services are rendered by a certified mammography provider. - **`data.encounter.referenceNumbers.priorAuthorization`** (`string`): **[CMS-1500 Box 23]** A payer-issued prior authorization number that approves the services on this claim. Required when the payer or Utilization Management Organization (UMO) assigned an authorization number and the services were preauthorized. To override this for a specific service line, set `serviceLines[].priorAuthorizations` instead. - **`data.encounter.referenceNumbers.referral`** (`string`): **[CMS-1500 Box 23]** A referral number for the provider referral tied to the services on this claim. Required when the payer or Utilization Management Organization (UMO) assigned a referral number and a referral is involved. - **`data.encounter.referringProvider`** (`object`): A provider involved in referring the patient for the care on this claim. Each provider should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`data.encounter.referringProvider.identifiers`** (`object`): Identifiers for a referring provider. - **`data.encounter.referringProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the referring provider by the payer. Include only when the payer requires it in addition to the NPI. - **`data.encounter.referringProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The referring provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`data.encounter.referringProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The referring provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`data.encounter.referringProvider.name`** (`any`) (required): A name that belongs to a person. - **`data.encounter.referringProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`data.encounter.referringProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`data.encounter.referringProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.encounter.referringProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`data.encounter.referringProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.encounter.resubmission`** (`object`): Information identifying this claim as a replacement or cancellation of a previously submitted claim. - **`data.encounter.resubmission.code`** (`string`): Whether this claim replaces or cancels a previously submitted claim. - `REPLACEMENT_OF_PRIOR_CLAIM`: This claim replaces a previously submitted claim. - `CANCELLATION_OF_PRIOR_CLAIM`: This claim cancels, or voids, a previously submitted claim. - Allowed values: `REPLACEMENT_OF_PRIOR_CLAIM`, `CANCELLATION_OF_PRIOR_CLAIM` - **`data.encounter.resubmission.originalReferenceNumber`** (`string`): The Payer Claim Control Number (sometimes called the ICN) of the original claim being replaced or cancelled. Generally required when `code` is set. One exception is Original Medicare, which specifies that you omit this value from resubmissions. - **`data.encounter.supervisingProvider`** (`object`): The provider who oversaw the rendering provider and the care reported in this claim. This should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`data.encounter.supervisingProvider.identifiers`** (`object`): Identifiers for a supervising provider. - **`data.encounter.supervisingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the supervising provider by the payer. Include only when the payer requires it in addition to the NPI. - **`data.encounter.supervisingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 17a]** A location number assigned to the supervising provider by the payer. Include only when the payer requires it in addition to the NPI. - **`data.encounter.supervisingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The supervising provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`data.encounter.supervisingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The supervising provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`data.encounter.supervisingProvider.name`** (`any`) (required): A name that belongs to a person. - **`data.encounter.supervisingProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`data.encounter.supervisingProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`data.encounter.supervisingProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.encounter.supervisingProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`data.encounter.supervisingProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.insured`** (`object`) (required): The person or entity that carries the insurance policy being billed, also called the subscriber or primary policyholder. May be different from the patient. - **`data.insured.address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`data.insured.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`data.insured.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`data.insured.address.city`** (`string`) (required): The city name. - **`data.insured.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`data.insured.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`data.insured.dateOfBirth`** (`string`): **[CMS-1500 Box 11a]** The insured's date of birth. Used to distinguish the insured from other members with similar names. - **`data.insured.gender`** (`string`): A code indicating the person's sex. - `MALE`: Male. - `FEMALE`: Female. - `UNKNOWN`: Unknown. Use when the person declines to answer or does not identify as male or female. Note that some payers may reject the claim if the sex doesn't match what they have in their member records. - Allowed values: `MALE`, `FEMALE`, `UNKNOWN` - **`data.insured.insuranceType`** (`string`) (required): The type of health insurance plan being billed. Pick the type that best matches the plan and payer. For most commercial payers, use `OTHER`. - `MEDICARE`: Original Medicare. Don't use this for Medicare Advantage plans – use `OTHER` instead. - `MEDICAID`: Medicaid. - `TRICARE`: TRICARE, the U.S. Department of Defense's health care program for military members and their families. - `CHAMPVA`: CHAMPVA, the Civilian Health and Medical Program of the Department of Veterans Affairs, which covers spouses and dependents of certain disabled or deceased veterans. - `FECA_BLK_LUNG`: Workers' compensation, FECA, or Black Lung coverage for workers injured on the job. FECA stands for the Federal Employees' Compensation Act. - `OTHER`: Any other plan type, including commercial payers and Medicare Advantage. Use this for most claims. - Allowed values: `MEDICARE`, `MEDICAID`, `TRICARE`, `CHAMPVA`, `FECA_BLK_LUNG`, `OTHER` - **`data.insured.memberId`** (`string`): **[CMS-1500 Box 1a]** The member ID for the insured's insurance policy, typically found on the insurance card. For Medicare claims, this is the insured's Medicare Beneficiary Identifier (MBI). - **`data.insured.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`data.insured.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.insured.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`data.insured.name (variant 2).person.firstName`** (`string`): The person's first name. - **`data.insured.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.insured.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`data.insured.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.insured.paymentResponsibilityLevelCode`** (`string`) (required): The payer's responsibility level for the claim. - `PRIMARY`: The payer is the primary payer for this claim. - Allowed values: `PRIMARY` - **`data.insured.planName`** (`string`): **[CMS-1500 Box 11c]** The name of the insured's insurance plan, typically found on the insurance card. - **`data.insured.policyOrGroupNumber`** (`string`): **[CMS-1500 Box 11]** The payer's code for the employer or other party that purchased the plan, typically found on the insurance card. For workers' compensation claims, use the Federal Employees' Compensation Act (FECA) number for the case. - **`data.insured.propertyCasualtyClaimNumber`** (`string`): **[CMS-1500 Box 11b]** The claim number assigned by a property or casualty insurer. Include for workers' compensation, automobile accident, or other liability claims when the payer requires it. - **`data.insured.ssn`** (`string`): **[CMS-1500 Box 11b]** The insured's Social Security Number. Only include when specifically instructed by a payer. - **`data.otherInsured`** (`array of ProfessionalClaimSubmissionOtherInsured objects`): **[CMS-1500 Box 9, 9a, 9d]** Coverage the patient holds under another insurance policy, relevant to coordination of benefits. Include this when the patient has coverage from another payer in addition to the one you're billing. - **`data.otherInsured[].address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`data.otherInsured[].address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`data.otherInsured[].address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`data.otherInsured[].address.city`** (`string`) (required): The city name. - **`data.otherInsured[].address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`data.otherInsured[].address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`data.otherInsured[].authorization`** (`object`) (required): Signature and assignment-of-benefits indicators for coverage under another policy. - **`data.otherInsured[].authorization.insuredAuthorizesAssignment`** (`string`) (required): Whether the insured has authorized payment of benefits directly to the provider. - `YES`: The insured has authorized assignment of benefits. - `NO`: The insured has not authorized assignment of benefits. - `NOT_APPLICABLE`: Assignment of benefits does not apply, typically because there is no signature on file. - Allowed values: `NO`, `NOT_APPLICABLE`, `YES` - **`data.otherInsured[].authorization.patientReleasesMedicalInfo`** (`string`) (required): Whether the provider has the patient's authorization to release medical information needed to process the claim. - `YES`: The provider has the patient's signed authorization to release medical information. - `INFORMED_CONSENT`: The provider has informed consent to release medical information, but the signed authorization has not been obtained. - Allowed values: `INFORMED_CONSENT`, `YES` - **`data.otherInsured[].authorization.providerGeneratedPatientSignature`** (`boolean`): Whether the provider generated the patient's signature because the patient was physically unable to sign. - **`data.otherInsured[].claimFilingIndicator`** (`string`) (required): The type of plan or payer that other coverage is filed under. - `MEDICARE_PART_A`: Medicare Part A. - `MEDICARE_PART_B`: Medicare Part B. - `MEDICAID`: Medicaid. - `TRICARE`: TRICARE. - `BLUE_CROSS_BLUE_SHIELD`: Blue Cross Blue Shield. - `COMMERCIAL_INSURANCE`: A commercial insurance company. - `HEALTH_MAINTENANCE_ORGANIZATION`: A health maintenance organization (HMO). - `HMO_MEDICARE_RISK`: An HMO Medicare risk plan. - `PREFERRED_PROVIDER_ORGANIZATION`: A preferred provider organization (PPO). - `POINT_OF_SERVICE`: A point-of-service (POS) plan. - `EXCLUSIVE_PROVIDER_ORGANIZATION`: An exclusive provider organization (EPO). - `INDEMNITY_INSURANCE`: An indemnity insurance plan. - `DENTAL_MAINTENANCE_ORGANIZATION`: A dental maintenance organization. - `AUTOMOBILE_MEDICAL`: Automobile medical coverage. - `LIABILITY_MEDICAL`: Liability medical coverage. - `DISABILITY`: Disability coverage. - `WORKERS_COMPENSATION_HEALTH_CLAIM`: A workers' compensation health claim. - `FEDERAL_EMPLOYEES_PROGRAM`: The Federal Employees Program. - `OTHER_FEDERAL_PROGRAM`: Another federal program. - `OTHER_NON_FEDERAL_PROGRAMS`: Another non-federal program. - `TITLE_V`: A Title V program. - `VETERANS_AFFAIRS_PLAN`: A Veterans Affairs plan. - `MUTUALLY_DEFINED`: A mutually defined plan type agreed on with the payer. - Allowed values: `OTHER_NON_FEDERAL_PROGRAMS`, `PREFERRED_PROVIDER_ORGANIZATION`, `POINT_OF_SERVICE`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `INDEMNITY_INSURANCE`, `HMO_MEDICARE_RISK`, `DENTAL_MAINTENANCE_ORGANIZATION`, `AUTOMOBILE_MEDICAL`, `BLUE_CROSS_BLUE_SHIELD`, `TRICARE`, `COMMERCIAL_INSURANCE`, `DISABILITY`, `FEDERAL_EMPLOYEES_PROGRAM`, `HEALTH_MAINTENANCE_ORGANIZATION`, `LIABILITY_MEDICAL`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `OTHER_FEDERAL_PROGRAM`, `TITLE_V`, `VETERANS_AFFAIRS_PLAN`, `WORKERS_COMPENSATION_HEALTH_CLAIM`, `MUTUALLY_DEFINED` - **`data.otherInsured[].medicareSecondaryInsuranceType`** (`string`): The reason the other coverage makes Medicare the secondary payer. - `WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EGHP`: A working aged beneficiary or spouse covered by an employer group health plan. - `END_STAGE_RENAL_DISEASE_IN_MANDATED_COORDINATION_PERIOD_WITH_EGHP`: End-stage renal disease coverage during the mandated coordination period with an employer group health plan. - `NO_FAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`: No-fault insurance, including automobile coverage, is primary. - `WORKERS_COMPENSATION`: Workers' compensation is primary. - `PUBLIC_HEALTH_SERVICE_OR_OTHER_FEDERAL_AGENCY`: A public health service or other federal agency is primary. - `BLACK_LUNG`: Black Lung benefits are primary. - `VETERANS_ADMINISTRATION`: Veterans Administration coverage is primary. - `DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LGHP`: A disabled beneficiary under age 65 covered by a large group health plan. - `OTHER_LIABILITY_INSURANCE_IS_PRIMARY`: Other liability insurance is primary. - Allowed values: `WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EGHP`, `END_STAGE_RENAL_DISEASE_IN_MANDATED_COORDINATION_PERIOD_WITH_EGHP`, `NO_FAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `WORKERS_COMPENSATION`, `PUBLIC_HEALTH_SERVICE_OR_OTHER_FEDERAL_AGENCY`, `BLACK_LUNG`, `VETERANS_ADMINISTRATION`, `DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LGHP`, `OTHER_LIABILITY_INSURANCE_IS_PRIMARY` - **`data.otherInsured[].memberId`** (`string`) (required): **[CMS-1500 Box 9]** The member ID for the other policy. - **`data.otherInsured[].name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`data.otherInsured[].name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.otherInsured[].name (variant 2).person`** (`object`) (required): The name of an individual person. - **`data.otherInsured[].name (variant 2).person.firstName`** (`string`): The person's first name. - **`data.otherInsured[].name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.otherInsured[].name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`data.otherInsured[].name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.otherInsured[].otherPayer`** (`object`) (required): The payer that provides coverage under another policy. - **`data.otherInsured[].otherPayer.id`** (`any`) (required): An identifier for the other payer. Provide exactly one. - **`data.otherInsured[].otherPayer.id (variant 1).payerId`** (`string`) (required): The other payer's payer identification number. - **`data.otherInsured[].otherPayer.id (variant 2).cmsPlanId`** (`string`) (required): The other payer's CMS plan ID, such as a Health Plan ID (HPID) or Other Entity Identifier (OEID). - **`data.otherInsured[].otherPayer.name`** (`any`) (required): A name that belongs to an organization. - **`data.otherInsured[].otherPayer.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.otherInsured[].planName`** (`string`): **[CMS-1500 Box 9d]** The name of the other insurance plan. - **`data.otherInsured[].policyOrGroupNumber`** (`string`): **[CMS-1500 Box 9a]** The policy or group number for the other coverage. - **`data.otherInsured[].relationshipToInsured`** (`string`) (required): How the patient is related to the person insured under the other policy. - `SELF`: The patient is the other insured. - `SPOUSE`: The patient is the other insured's spouse. - `CHILD`: The patient is the other insured's child. - `EMPLOYEE`: The patient is the other insured's employee. - `LIFE_PARTNER`: The patient is the other insured's life partner. - `ORGAN_DONOR`: The patient is an organ donor. - `CADAVER_DONOR`: The patient is a cadaver donor. - `OTHER_RELATIONSHIP`: The patient has another relationship to the other insured. - `UNKNOWN`: The relationship is unknown. - Allowed values: `SPOUSE`, `SELF`, `CHILD`, `EMPLOYEE`, `UNKNOWN`, `ORGAN_DONOR`, `CADAVER_DONOR`, `LIFE_PARTNER`, `OTHER_RELATIONSHIP` - **`data.otherInsured[].responsibilityLevel`** (`string`) (required): A payer's responsibility level for a claim. - `PRIMARY`: The primary payer. - `SECONDARY`: The secondary payer. - `TERTIARY`: The tertiary payer. - Allowed values: `PRIMARY`, `SECONDARY`, `TERTIARY` - **`data.otherInsured[].ssn`** (`string`): The Social Security Number of the person insured under the other policy. Only include when specifically instructed by a payer. - **`data.patient`** (`object`): The person who received care, when they are someone other than the insured. - **`data.patient.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`data.patient.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`data.patient.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`data.patient.address.city`** (`string`) (required): The city name. - **`data.patient.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`data.patient.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`data.patient.dateOfBirth`** (`string`) (required): **[CMS-1500 Box 3]** The patient's date of birth. Used to distinguish the patient from other members with similar names. - **`data.patient.gender`** (`string`) (required): A code indicating the person's sex. - `MALE`: Male. - `FEMALE`: Female. - `UNKNOWN`: Unknown. Use when the person declines to answer or does not identify as male or female. Note that some payers may reject the claim if the sex doesn't match what they have in their member records. - Allowed values: `MALE`, `FEMALE`, `UNKNOWN` - **`data.patient.name`** (`any`) (required): A name that belongs to a person. - **`data.patient.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`data.patient.name (variant 1).person.firstName`** (`string`): The person's first name. - **`data.patient.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.patient.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`data.patient.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.patient.relationshipToInsured`** (`string`) (required): How the patient is related to the insured. - `SPOUSE`: The patient is the insured's spouse. - `CHILD`: The patient is the insured's child. - `EMPLOYEE`: The patient is the insured's employee, typically for workers' compensation claims where the insured is the employer. - `OTHER_RELATIONSHIP`: The patient has another relationship to the insured. - Allowed values: `SPOUSE`, `CHILD`, `EMPLOYEE`, `OTHER_RELATIONSHIP` - **`data.payer`** (`object`) (required): The payer being billed for the claim. - **`data.payer.address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`data.payer.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`data.payer.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`data.payer.address.city`** (`string`) (required): The city name. - **`data.payer.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`data.payer.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`data.payer.id`** (`string`) (required): **[CMS-1500 Carrier Block]** The Stedi payer ID for the payer being billed. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading 0 characters. Payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`data.payer.name`** (`any`): A name that belongs to an organization. - **`data.payer.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.payer.receiverId`** (`string`): **[CMS-1500 Carrier Block]** The ID of the receiver that processes the claim, typically the clearinghouse or payer. Only include when the receiver differs from the payer. - **`data.purpose`** (`string`) (required): The purpose of the claim submission. - `CHARGEABLE`: A standard fee-for-service claim with at least one chargeable line item. Use this for most submissions. - `SUBROGATION_DEMAND`: Only for use by state Medicaid agencies performing post-payment recovery. - `REPORTING`: A reporting-only submission that is not a request for payment. - Allowed values: `SUBROGATION_DEMAND`, `CHARGEABLE`, `REPORTING` - **`data.serviceLines`** (`array of ProfessionalClaimSubmissionServiceLine objects`) (required): **[CMS-1500 Box 17, 17a, 17b, 20, 24a-24j]** The individual services, procedures, or supplies being billed. Each service line corresponds to one row in Box 24 of the CMS-1500 form. - **`data.serviceLines[].attachments`** (`array of ProfessionalClaimSubmissionAttachment objects`): **[CMS-1500 Box 24]** Supporting documentation attached to this service line. Only include when the payer requires it. Visit [Submit claim attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for more information. - **`data.serviceLines[].attachments[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`data.serviceLines[].attachments[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is required when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`data.serviceLines[].attachments[].reportTypeCode`** (`string`) (required): The type of report being attached to the claim. Visit [Attachment report type codes](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of values and their descriptions. - Allowed values: `REPORT_JUSTIFYING_TREATMENT`, `DRUGS_ADMINISTERED`, `TREATMENT_DIAGNOSIS`, `INITIAL_ASSESSMENT`, `FUNCTIONAL_GOALS`, `PLAN_OF_TREATMENT`, `PROGRESS_REPORT`, `CONTINUED_TREATMENT`, `CHEMICAL_ANALYSIS`, `CERTIFIED_TEST_REPORT`, `JUSTIFICATION_FOR_ADMISSION`, `RECOVERY_PLAN`, `ALLERGIES_SENSITIVITIES`, `AUTOPSY_REPORT`, `AMBULANCE_CERTIFICATION`, `ADMISSION_SUMMARY`, `PRESCRIPTION`, `PHYSICIAN_ORDER`, `REFERRAL_FORM`, `BENCHMARK_TESTING_RESULTS`, `BASELINE`, `BLANKET_TEST_RESULTS`, `CHIROPRACTIC_JUSTIFICATION`, `CONSENT_FORMS`, `CERTIFICATION`, `DRUG_PROFILE`, `DENTAL_MODELS`, `DME_PRESCRIPTION`, `DIAGNOSTIC_REPORT`, `DISCHARGE_MONITORING`, `DISCHARGE_SUMMARY`, `EXPLANATION_OF_BENEFITS`, `HEALTH_CERTIFICATE`, `HEALTH_CLINIC_RECORDS`, `IMMUNIZATION_RECORD`, `STATE_IMMUNIZATION_RECORDS`, `LABORATORY_RESULTS`, `MEDICAL_RECORD_ATTACHMENT`, `MODELS`, `NURSING_NOTES`, `OPERATIVE_NOTE`, `OXYGEN_CONTENT_AVERAGING`, `ORDERS_TREATMENTS`, `PHYSICAL_EXAMINATION`, `OXYGEN_THERAPY_CERTIFICATION`, `SUPPORT_DATA`, `PATHOLOGY_REPORT`, `MEDICAL_HISTORY`, `PARENTERAL_ENTERAL_CERTIFICATION`, `PHYSICAL_THERAPY_NOTES`, `PROSTHETICS_ORTHOTIC_CERTIFICATION`, `PARAMEDICAL_RESULTS`, `PHYSICIAN_REPORT`, `PHYSICAL_THERAPY_CERTIFICATION`, `RADIOLOGY_FILMS`, `RADIOLOGY_REPORTS`, `TESTS_ANALYSIS_REPORT`, `RENEWABLE_OXYGEN_CONTENT`, `SYMPTOMS_DOCUMENT`, `DEATH_NOTIFICATION`, `PHOTOGRAPHS` - **`data.serviceLines[].attachments[].transmissionCode`** (`string`) (required): How an attachment is transmitted to the payer. - `ELECTRONICALLY_ONLY`: The attachment is sent electronically only. - `BY_MAIL`: The attachment is sent by mail. - `BY_FAX`: The attachment is sent by fax. - `EMAIL`: The attachment is sent by email. - `FILE_TRANSFER`: The attachment is sent by file transfer. - `AVAILABLE_ON_REQUEST`: The attachment is held by the provider and made available to the payer on request. - Allowed values: `AVAILABLE_ON_REQUEST`, `BY_MAIL`, `ELECTRONICALLY_ONLY`, `EMAIL`, `FILE_TRANSFER`, `BY_FAX` - **`data.serviceLines[].datesOfService`** (`object`) (required): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`data.serviceLines[].datesOfService.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`data.serviceLines[].datesOfService.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`data.serviceLines[].diagnosisCodes`** (`array of strings`) (required): **[CMS-1500 Box 24e]** Up to four diagnoses this service relates to. Must be [ICD-10-CM codes](https://www.cdc.gov/nchs/icd/icd-10-cm/index.html). List them in order of importance to the service, with the most relevant diagnosis first. Across `encounter.primaryDiagnosisCode` and the codes on every service line, a claim can use at most 12 distinct diagnosis codes. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - Don't submit the decimal point for ICD codes. The decimal point is implied. - Don't submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the Value Set Authority Center. If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`data.serviceLines[].drugIdentification`** (`object`): Drug identification details for a service line, required when a drug is billed and a prescription was written. - **`data.serviceLines[].drugIdentification.associationNumber`** (`any`): A prescription number or compound drug link sequence number. Provide exactly one. - **`data.serviceLines[].drugIdentification.associationNumber (variant 1).linkSequenceNumber`** (`string`) (required): A provider-assigned number, unique to this claim, that ties together the components of a compound drug when there is no prescription number. - **`data.serviceLines[].drugIdentification.associationNumber (variant 2).pharmacyPrescriptionNumber`** (`string`) (required): The pharmacy prescription number. For a compound drug, all components share the same prescription number so the payer can relate them. - **`data.serviceLines[].drugIdentification.nationalDrugCode`** (`string`) (required): The dispensed drug's National Drug Code (NDC). - **`data.serviceLines[].drugIdentification.originalNdc`** (`string`): The original National Drug Code (NDC), when it differs from the code reported in `nationalDrugCode`. - **`data.serviceLines[].drugIdentification.unitCount`** (`string`) (required): The quantity of the drug administered, expressed in the unit given by `unitOfMeasure`. - **`data.serviceLines[].drugIdentification.unitOfMeasure`** (`string`) (required): The unit of measure for a drug quantity. - `INTERNATIONAL_UNIT`: International unit. - `GRAM`: Gram. - `MILLIGRAM`: Milligram. - `MILLILITER`: Milliliter. - `UNIT`: Unit. - Allowed values: `INTERNATIONAL_UNIT`, `GRAM`, `MILLIGRAM`, `MILLILITER`, `UNIT` - **`data.serviceLines[].isEmergency`** (`boolean`): **[CMS-1500 Box 24c]** Whether the service was related to an emergency, meaning the patient required immediate intervention for a severe, life-threatening, or potentially disabling condition. - **`data.serviceLines[].isEpsdtRelated`** (`boolean`): **[CMS-1500 Box 24h]** Whether the service is related to an Early and Periodic Screening, Diagnosis, and Treatment (EPSDT) encounter. Set this on services that resulted from an EPSDT screening, not on the screening service itself. Report the screening's referral outcome in `encounter.epsdtReferralCodes`. - **`data.serviceLines[].isFamilyPlanning`** (`boolean`): **[CMS-1500 Box 24h]** Whether the service was related to a family planning program. - **`data.serviceLines[].lineItemChargeAmount`** (`string`) (required): **[CMS-1500 Box 24f]** The charge for this service line, including the provider's base charge and any applicable tax or postage. It is acceptable to set this to `0` (zero). - **`data.serviceLines[].lineItemControlNumber`** (`string`): A control number you assign to this service line for your own tracking. Each must be unique within the claim. If you don't set it, Stedi sets it for you – a random ULID. - **`data.serviceLines[].narrativeForUnspecifiedCode`** (`string`): **[CMS-1500 Box 24]** A free-text description that clarifies the procedure code and any modifiers. Provide when billing an unspecified or unlisted procedure code. - **`data.serviceLines[].orderingProvider`** (`object`): The provider who ordered the services, tests, or supplies on a service line. This should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`data.serviceLines[].orderingProvider.identifiers`** (`object`): Identifiers for an ordering provider. - **`data.serviceLines[].orderingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the ordering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`data.serviceLines[].orderingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The ordering provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`data.serviceLines[].orderingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The ordering provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`data.serviceLines[].orderingProvider.name`** (`any`) (required): A name that belongs to a person. - **`data.serviceLines[].orderingProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`data.serviceLines[].orderingProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`data.serviceLines[].orderingProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.serviceLines[].orderingProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`data.serviceLines[].orderingProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.serviceLines[].placeOfService`** (`string`): **[CMS-1500 Box 24b]** The place of service code identifying where the patient received the service. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`data.serviceLines[].priorAuthorizations`** (`array of ProfessionalClaimSubmissionServiceLinePriorAuthorizationNumber objects`): Prior authorization numbers that apply to this service line. Include only numbers that differ from the claim-level prior authorization in `encounter.referenceNumbers.priorAuthorization`. You can use the same number on multiple service lines. - **`data.serviceLines[].priorAuthorizations[].otherPayerPrimaryId`** (`string`): The identifier of the other payer that issued this prior authorization number. Include only when the number was issued by a payer other than the one being billed, and match the other payer's identifier in `otherInsured[].otherPayer.id`. - **`data.serviceLines[].priorAuthorizations[].priorAuthorizationNumber`** (`string`) (required): The payer-issued prior authorization number for this service line. - **`data.serviceLines[].procedureCode`** (`object`) (required): A procedure, service, or supply code with any applicable modifiers. - **`data.serviceLines[].procedureCode.code`** (`string`) (required): The procedure, service, or supply code, typically a CPT or HCPCS code. - **`data.serviceLines[].procedureCode.modifiers`** (`array of strings`): Up to four modifier codes that convey special circumstances related to the service, such as `25` or `JW`. - **`data.serviceLines[].purchasedService`** (`object`): A service the billing provider bought from an outside provider and is billing to the payer. - **`data.serviceLines[].purchasedService.chargeAmount`** (`string`) (required): **[CMS-1500 Box 20]** The price the billing provider paid the outside provider for this service. - **`data.serviceLines[].purchasedService.provider`** (`object`) (required): The outside provider the billing provider bought the service from. - **`data.serviceLines[].purchasedService.provider.entityType`** (`string`) (required): Whether a purchased service provider is a person or an organization. - Allowed values: `PERSON`, `ORGANIZATION` - **`data.serviceLines[].purchasedService.provider.identifiers`** (`object`) (required): Identifiers for a purchased service provider. - **`data.serviceLines[].purchasedService.provider.identifiers.npi`** (`string`) (required): **[CMS-1500 Box 32a]** The purchased service provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`data.serviceLines[].renderingProvider`** (`object`): The provider who performed the service. This can be an individual or an organization, such as a laboratory. When a substitute provider (locum tenens) was used, supply that provider's information here. You can omit this object when the rendering provider is the same as the billing provider. - **`data.serviceLines[].renderingProvider.identifiers`** (`object`): Identifiers for the rendering provider. - **`data.serviceLines[].renderingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 24i]** A commercial number assigned to the rendering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`data.serviceLines[].renderingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 24i]** A location number assigned to the rendering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`data.serviceLines[].renderingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 24j]** The rendering provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`data.serviceLines[].renderingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 24i]** The rendering provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`data.serviceLines[].renderingProvider.identifiers.taxonomyCode`** (`string`): **[CMS-1500 Box 24i]** The rendering provider's taxonomy code from the National Uniform Claim Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/), which identifies the provider's type and specialty. - **`data.serviceLines[].renderingProvider.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`data.serviceLines[].renderingProvider.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.serviceLines[].renderingProvider.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`data.serviceLines[].renderingProvider.name (variant 2).person.firstName`** (`string`): The person's first name. - **`data.serviceLines[].renderingProvider.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.serviceLines[].renderingProvider.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`data.serviceLines[].renderingProvider.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`data.serviceLines[].units`** (`string`) (required): **[CMS-1500 Box 24g]** The number of units of the service provided. The units depend on the procedure code and the nature of the service. For example, they may correspond to office visits (1 unit per visit), individual diagnostic tests (1 unit per test), or time (when a service is billed in 15-minute increments, 4 units could equal 1 hour). For anesthesia procedure codes (00100-01999), report the total anesthesia time in minutes; Stedi reports the unit of measure as minutes for these codes automatically. - **`data.submitter`** (`object`) (required): The entity submitting the claim to Stedi. - **`data.submitter.contact`** (`object`): A person or department to contact, with up to one phone number, email address, and fax number. Provide at least one way to reach the contact. - **`data.submitter.contact.email`** (`string`): The contact's email address. - **`data.submitter.contact.faxNumber`** (`string`): The contact's fax number. - **`data.submitter.contact.name`** (`string`): The name of the contact person or department. When omitted, questions are directed to the entity itself. - **`data.submitter.contact.phoneExtension`** (`string`): The extension for `phoneNumber`. - **`data.submitter.contact.phoneNumber`** (`string`): The contact's phone number. - **`data.submitter.etin`** (`string`): **[CMS-1500 Carrier Block]** The submitter's Electronic Transmitter Identification Number (ETIN), a payer-assigned ID that identifies the entity transmitting the claim. - **`data.submitter.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`data.submitter.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`data.submitter.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`data.submitter.name (variant 2).person.firstName`** (`string`): The person's first name. - **`data.submitter.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`data.submitter.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`data.submitter.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`processedAt`** (`string`) (required): The time Stedi processed the submission. - **`stediPayerId`** (`string`): The payer identifier in Stedi's system. - **`submissionId`** (`string`) (required): A unique identifier for a specific submission of a claim within Stedi. Stedi generates a submission ID for the initial submission and then a new submission ID for every resubmission of the same claim. This is different from the claim ID, which doesn't change throughout the claim's lifecycle. **Example:** ```json { "claimId": "clm_01K6XFP3TZ8RA9X84963NMW40M", "data": { "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerAcceptsAssignment": "ASSIGNED", "providerSignature": "ON_FILE" }, "billing": { "amountPaid": "100.00", "billingProvider": { "address": { "addressLine1": "501 Main Street", "city": "Springfield", "postalCode": "627010500", "state": "IL" }, "contact": { "phoneNumber": "2175558800" }, "identifiers": { "locationNumber": "LOC-001", "npi": "1730289013", "taxonomyCode": "207Q00000X" }, "name": { "organization": "Springfield Family Medical Center" } }, "patientControlNumber": "CLM-2026-04219", "serviceFacility": { "address": { "addressLine1": "501 Main Street", "city": "Springfield", "postalCode": "627010500", "state": "IL" }, "identifiers": { "npi": "1730289013", "stateLicenseNumber": "IL-FAC-77821" }, "name": { "organization": "Springfield Family Medical Center" } }, "taxId": { "ein": "841234567" }, "totalCharge": "1432.50" }, "encounter": { "attachments": [ { "attachmentControlNumber": "PWK-2026-0001", "attachmentId": "1f2e3d4c-5b6a-7980-9abc-def012345678", "reportTypeCode": "PROGRESS_REPORT", "transmissionCode": "ELECTRONICALLY_ONLY" } ], "claimCodes": [ "AV" ], "claimNote": { "additionalInformation": "Patient presented with persistent cough and bronchospasm; treated in office." }, "clinicalDates": { "hospitalization": { "end": "2026-03-06", "start": "2026-03-04" }, "initialTreatment": "2026-03-03", "onsetOfCurrentIllness": "2026-03-02", "unableToWork": { "end": "2026-03-10", "start": "2026-03-03" } }, "patientCondition": { "isAutoAccidentRelated": false, "isEmploymentRelated": false, "isOtherAccidentRelated": false }, "primaryDiagnosisCode": "J0190", "priorReferringProvider": { "identifiers": { "npi": "1083827763" }, "name": { "person": { "firstName": "David", "lastName": "Kim" } } }, "referenceNumbers": { "clia": "14D2089999", "priorAuthorization": "PA-2026-77831", "referral": "REF-55421" }, "referringProvider": { "identifiers": { "npi": "1245319599", "stateLicenseNumber": "IL-MD-44512" }, "name": { "person": { "firstName": "Maya", "lastName": "Patel" } } }, "resubmission": { "code": "REPLACEMENT_OF_PRIOR_CLAIM", "originalReferenceNumber": "CLM-ORIG-998877" }, "supervisingProvider": { "identifiers": { "npi": "1396718825" }, "name": { "person": { "firstName": "Elena", "lastName": "Rossi" } } } }, "insured": { "address": { "addressLine1": "742 Evergreen Terrace", "addressLine2": "Apt 3B", "city": "Springfield", "postalCode": "627010001", "state": "IL" }, "dateOfBirth": "1982-04-12", "gender": "FEMALE", "insuranceType": "OTHER", "memberId": "W123456789", "name": { "person": { "firstName": "Sarah", "lastName": "Johnson", "middleName": "A" } }, "paymentResponsibilityLevelCode": "PRIMARY", "planName": "Aetna Choice POS II", "policyOrGroupNumber": "GRP-AETNA-987654", "ssn": "111223333" }, "otherInsured": [ { "address": { "addressLine1": "742 Evergreen Terrace", "addressLine2": "Apt 3B", "city": "Springfield", "postalCode": "627010001", "state": "IL" }, "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerGeneratedPatientSignature": false }, "claimFilingIndicator": "BLUE_CROSS_BLUE_SHIELD", "memberId": "BCBS-IL-554433221", "name": { "person": { "firstName": "Michael", "lastName": "Johnson" } }, "otherPayer": { "id": { "payerId": "00621" }, "name": { "organization": "Blue Cross Blue Shield of Illinois" } }, "planName": "BCBS PPO", "policyOrGroupNumber": "BCBS-GRP-3344", "relationshipToInsured": "SPOUSE", "responsibilityLevel": "SECONDARY" } ], "patient": { "address": { "addressLine1": "742 Evergreen Terrace", "addressLine2": "Apt 3B", "city": "Springfield", "postalCode": "627010001", "state": "IL" }, "dateOfBirth": "2015-08-21", "gender": "MALE", "name": { "person": { "firstName": "Liam", "lastName": "Johnson" } }, "relationshipToInsured": "CHILD" }, "payer": { "address": { "addressLine1": "151 Farmington Avenue", "city": "Hartford", "postalCode": "06156", "state": "CT" }, "id": "60054", "name": { "organization": "Aetna" }, "receiverId": "60054" }, "purpose": "CHARGEABLE", "serviceLines": [ { "datesOfService": { "end": "2026-03-03", "start": "2026-03-03" }, "diagnosisCodes": [ "J0190", "R0602" ], "isEmergency": false, "lineItemChargeAmount": "185.00", "lineItemControlNumber": "LN-0001", "placeOfService": "11", "procedureCode": { "code": "99213", "modifiers": [ "25" ] }, "renderingProvider": { "identifiers": { "npi": "1396718825", "taxonomyCode": "207Q00000X" }, "name": { "person": { "firstName": "Elena", "lastName": "Rossi" } } }, "units": "1" }, { "datesOfService": { "end": "2026-03-03", "start": "2026-03-03" }, "diagnosisCodes": [ "J0190" ], "drugIdentification": { "associationNumber": { "pharmacyPrescriptionNumber": "RX-2026-118822" }, "nationalDrugCode": "00409120130", "unitCount": "300", "unitOfMeasure": "MILLIGRAM" }, "isEmergency": false, "lineItemChargeAmount": "1247.50", "lineItemControlNumber": "LN-0002", "orderingProvider": { "identifiers": { "npi": "1245319599" }, "name": { "person": { "firstName": "Maya", "lastName": "Patel" } } }, "placeOfService": "11", "priorAuthorizations": [ { "otherPayerPrimaryId": "60054", "priorAuthorizationNumber": "PA-2026-77831" } ], "procedureCode": { "code": "J1885", "modifiers": [ "JW" ] }, "renderingProvider": { "identifiers": { "npi": "1396718825" }, "name": { "person": { "firstName": "Elena", "lastName": "Rossi" } } }, "units": "10" } ], "submitter": { "contact": { "email": "billing@acmehealth.example", "faxNumber": "3135551235", "phoneNumber": "3135551234" }, "etin": "SUBMITTER0001", "name": { "organization": "Acme Health Billing" } } }, "processedAt": "2026-03-03T15:30:00Z", "stediPayerId": "AETNA", "submissionId": "sbm_01K6XFP3TZ8RA9X84963NMW40N" } ``` #### 400 GetProfessionalClaimSubmission400Error 400 response **Schema:** `GetProfessionalClaimSubmission400ErrorResponseContent` #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 GetProfessionalClaimSubmission403Error 403 response **Schema:** `GetProfessionalClaimSubmission403ErrorResponseContent` #### 404 GetProfessionalClaimSubmission404Error 404 response **Schema:** `GetProfessionalClaimSubmission404ErrorResponseContent` #### 429 GetProfessionalClaimSubmission429Error 429 response **Schema:** `GetProfessionalClaimSubmission429ErrorResponseContent` #### 500 GetProfessionalClaimSubmission500Error 500 response **Schema:** `GetProfessionalClaimSubmission500ErrorResponseContent` # Search Payers Source: https://www.stedi.com/docs/healthcare/api-reference/get-search-payers This endpoint queries the [Payer Network](https://www.stedi.com/healthcare/network). It's especially useful when you want to embed dynamic payer search capabilities into your system or application. 1. Call this endpoint with your desired search criteria. You can search by the payer's name, [payer ID](/healthcare/supported-payers#payer-ids), or payer ID aliases. You can also filter the results by supported transaction types. 2. The endpoint returns information about matching payers, including their possible names, their primary payer ID, payer ID aliases, and supported transaction types. The search supports fuzzy matching, which means that the results contain an array of exact (if available) and close matches. Payer records can change. If you store payer details in your own system, [refresh them at least once a day](/healthcare/supported-payers#refresh-payer-data). ## Results [#results] When you specify multiple transaction filters, they are combined with AND logic, meaning payers must satisfy all specified transaction criteria to be included in results. Stedi weights results based on text match relevance and additional factors, such as payer size, market share, and transaction volume in order to present the most likely matches first. Stedi also accounts for potential misspellings (a search for CEGNA still returns CIGNA) and transposed letters (a search for ICGNA still returns CIGNA) when searching the payer database. ## Examples [#examples] This page contains two examples of search results: - **Search for query string**: This example response shows the results of a basic search for the query string "Blue Cross". The URL for this request is `https://healthcare.us.stedi.com/2024-04-01/payers/search?query=Blue%20Cross`. - **Search with multiple filters**: This example response shows the results of a more advanced search that includes a query string for "Blue Cross", plus additional query parameters that filter for payers supporting eligibility checks and real-time claim status. The URL for this request is `https://healthcare.us.stedi.com/2024-04-01/payers/search?query=Blue%20Cross&eligibilityCheck=SUPPORTED&claimStatus=SUPPORTED`. This advanced search only returns payers that support both eligibility checks and claim status, while the basic search returns all payers, regardless of the transaction types they support. Both examples are truncated for brevity to show only one payer matching the results. ## API Specification Search for payers by name, ID, or alias. **Endpoint:** `GET /payers/search` **Base URL:** `https://payers.us.stedi.com/2024-04-01` ### Parameters - **`pageSize`** (query): The maximum number of elements to return in a page. If not specified, the default is 20. - Type: `integer` - **`pageToken`** (query): An opaque token returned by a previous call to this endpoint in the `nextPageToken` property. You can use it to request the next page of results. If not specified, Stedi returns the first page of results. - Type: `string` - **`query`** (query): The query Stedi will use to search the Payer Network database. You can supply a payer's name, ID, or alias. The query is case-insensitive, and fuzzy matching is supported. For example, `cig`, `62308`, and `SX071` all return Cigna in the results. If not provided, the other search options are used to conduct the search. - Type: `string` - **`eligibilityCheck`** (query): Filter for matching payers with the specified 270 eligibility checks support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`claimStatus`** (query): Filter for matching payers with the specified 276/277 real-time claim status checks support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`professionalClaimSubmission`** (query): Filter for matching payers with the specified 837 professional claims support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`dentalClaimSubmission`** (query): Filter for matching payers with the specified 837 dental claims support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`institutionalClaimSubmission`** (query): Filter for matching payers with the specified 837 institutional claims support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`claimPayment`** (query): Filter for matching payers with the specified 835 Electronic Remittance Advice (ERA) support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`coordinationOfBenefits`** (query): Filter for matching payers with the specified coordination of benefits (COB) checks support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`unsolicitedClaimAttachment`** (query): Filter for matching payers with the specified unsolicited 275 claim attachments support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`electronicFundsTransfer`** (query): Filter for matching payers with the specified Electronic Funds Transfer (EFT) support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`claimPaymentAdviceWithElectronicFundsTransfer`** (query): Filter for matching payers with the specified 835 Electronic Remittance Advice (ERA) with Electronic Funds Transfer (EFT) support. When combined with other transaction filters, payers must satisfy **all** specified criteria to be included in results. - **`coverageTypes`** (query): Filter for matching payers that support transactions for **all** of the specified coverage types. For example, setting this array to `["medical", "dental"]` returns only payers who provide both medical and dental coverage. The results also exclude payers without coverage type classifications in Stedi's database. - Type: `array` - **`operatingStates`** (query): Filter for matching payers that operate in **all** of the specified states, territories, or NATIONAL. For example, setting this array to `["CA", "OR"]` returns only payers that operate in both California and Oregon. Setting it to `["NATIONAL"]` returns payers that operate in all 50 U.S. states. To find payers that also operate in territories, you must include those territory codes explicitly, for example `["NATIONAL", "PR"]`. The results also exclude payers without operating state classifications in Stedi's database. - Type: `array` - **`programs`** (query): Filter for matching payers that participate in **any** of the specified insurance programs. For example, setting this array to `["MEDICARE", "TRICARE"]` returns payers that participate in either Medicare or TRICARE. The results also exclude payers without program classifications in Stedi's database. - Type: `array` ### Responses #### 200 SearchPayers 200 response **Schema:** `SearchPayersResponseContent` **Properties:** - **`items`** (`array of SearchResult objects`) (required): Matching payers sorted by relevance, with the most relevant matches listed first. - **`items[].matches`** (`object`): Shows which properties in the payer record match the search query. This information helps you understand why Stedi returned this payer and which parts of the payer record matched the search terms. It's also especially useful for debugging search queries and building user interfaces that display matching text. - Matching text is wrapped in `` HTML tags for highlighting. - This object only contains properties with matching text. For example, if none of the payer's aliases matched the search query, this object will not include the `aliases` property. - **`items[].matches.aliases`** (`array of strings`): The parts of the payer's aliases that match the search query. Each alias that contains matching text is included as a separate entry, with matching portions wrapped in `` tags. For example, searching for `XYZ` might return: [`XYZ123`, `ABCXYZ`]. - **`items[].matches.displayName`** (`string`): The part of the payer's display name that matched the search query. For example, searching for `Blue` might return: `Blue Cross Blue Shield`. - **`items[].matches.names`** (`array of strings`): The parts of the payer's other names that match the search query. Each name that contains matching text is included as a separate entry, with matching portions wrapped in `` tags. For example, searching for `Health` might return: [`Community Health Plan`, `Health Partners`]. - **`items[].matches.primaryPayerId`** (`string`): The part of the primary payer ID that matched the search query. For example, if you search for '12345', the results for a payer with primary payer ID `12345ABC` would return: `12345ABC`. - **`items[].matches.stediId`** (`string`): The part of the payer's Stedi payer ID that matched the search query. Stedi payer IDs only support exact substring matching (no prefix or fuzzy matching). For example, if you search for `KRP`, the results for a payer with Stedi payer ID 'KRPCH' would be: `KRPCH`. - **`items[].payer`** (`object`) (required) - **`items[].payer.aliases`** (`array of strings`) (required): Alternative IDs associated with a payer. If a payer changes their `primaryPayerId`, aliases allow you to continue sending transactions to the payer using the old ID uninterrupted. - **`items[].payer.avatarUrl`** (`string`): A URL pointing to an image file (`.png`, `.jpeg`, or `.jpg`) with the payer's logo. This is the same logo Stedi displays in the [Payer Network](https://www.stedi.com/healthcare/network). You can use this property to display payer logos in your system or application. This property is only returned when a payer logo is available. - **`items[].payer.conciseName`** (`string`): A shorter version of the payer's display name for use in dense UI views. This property is only returned when a concise name is available for the payer. - **`items[].payer.coverageTypes`** (`array of strings`): A list of insurance coverage types that indicates whether this payer supports transactions for medical coverage, dental coverage, vision coverage, or a combination of these. For example: `["medical"]` or `["medical", "dental", "vision"]`. When this array isn't in the response, it means Stedi hasn't classified the payer's coverage types yet, **not** that the payer doesn't support any coverage types. - **`items[].payer.displayName`** (`string`) (required): The payer's business name, such as Cigna or Aetna. This is the name most commonly used to identify the payer. - **`items[].payer.employerIdentificationNumbers`** (`array of strings`): Employer Identification Numbers (EINs) associated with this payer. - **`items[].payer.enrollment`** (`object`): Information about enrollment requirements for the payer - **`items[].payer.enrollment.ptanRequired`** (`boolean`): Whether a PTAN (Provider Transaction Access Number) is required for transaction enrollment. The Provider Transaction Access Number (PTAN) is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`items[].payer.enrollment.transactionEnrollmentProcesses`** (`object`): Information about the transaction enrollment requirements and expected timeframes for each transaction type. - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPayment`** (`object`): Details about the enrollment process for Electronic Remittance Advice (ERAs). - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPayment.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPayment.supportedAggregationPreferences`** (`array of strings`): Aggregation types this payer supports for 835 Electronic Remittance Advice (ERA) transactions. Payers can aggregate by the provider's NPI, tax ID (TIN), or both. - You can use this information to specify an `aggregationPreference` when submitting ERA enrollment requests. - This property is only returned when Stedi can determine the payer's supported aggregation types. - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPayment.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPayment.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer`** (`object`): Details about the enrollment process for Electronic Remittance Advice (ERA) with Electronic Funds Transfer (EFT). - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimPaymentAdviceWithElectronicFundsTransfer.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry`** (`object`): Details about the enrollment process for real-time claim status requests. - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.claimStatusInquiry.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits`** (`object`): Details about the enrollment process for coordination of benefits (COB) checks. - **`items[].payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.coordinationOfBenefits.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.dentalClaim`** (`object`): Details about the enrollment process for dental claim submission. - **`items[].payer.enrollment.transactionEnrollmentProcesses.dentalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.dentalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.dentalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer`** (`object`): Details about the enrollment process for Electronic Funds Transfer (EFT). - **`items[].payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.electronicFundsTransfer.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry`** (`object`): Details about the enrollment process for eligibility checks. - **`items[].payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.eligibilityInquiry.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.institutionalClaim`** (`object`): Details about the enrollment process for institutional claim submission. - **`items[].payer.enrollment.transactionEnrollmentProcesses.institutionalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.institutionalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.institutionalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.professionalClaim`** (`object`): Details about the enrollment process for professional claim submission. - **`items[].payer.enrollment.transactionEnrollmentProcesses.professionalClaim.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.professionalClaim.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.professionalClaim.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment`** (`object`): Details about the enrollment process for unsolicited claim attachments. - **`items[].payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.requestedEffectiveDate`** (`string`): Whether a payer supports specifying a requested effective date for transaction enrollments. - Allowed values: `SUPPORTED`, `NOT_SUPPORTED` - **`items[].payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.timeframe`** (`string`): Stedi's expected timeframe for completing the transaction enrollment process. `INSTANT` indicates that the enrollment will be in `LIVE` status within minutes of submitting the request. - Allowed values: `INSTANT`, `HOURS`, `DAYS`, `WEEKS`, `OVER_4_WEEKS` - **`items[].payer.enrollment.transactionEnrollmentProcesses.unsolicitedClaimAttachment.type`** (`string`): Whether transaction enrollment is single or multi-step. - `ONE_CLICK` indicates that once you submit the transaction enrollment request, Stedi can complete the rest of the enrollment process without any further action from you. - `MULTI_STEP` indicates that you must complete additional steps to finish the enrollment process. Customer support will reach out with clear instructions explaining how to complete any remaining steps. - Allowed values: `ONE_CLICK`, `MULTI_STEP` - **`items[].payer.names`** (`array of strings`) (required): Alternative names associated with a payer. These additional names help you search for and identify payers using the name most familiar to your organization. - **`items[].payer.operatingStates`** (`array of strings`): A list of US state codes, territories, or `NATIONAL` that indicates the geographic regions where this payer operates. For example: `["CA", "OR"]` for a regional payer, or `["NATIONAL"]` for a payer that operates in all 50 U.S. states. Supported territories are listed separately. When this array isn't in the response, it means Stedi hasn't classified the payer's operating states yet. - **`items[].payer.parentPayerGroupId`** (`string`): The identifier for the corporate or brand group to which the payer belongs. The parent payer group is organizational metadata only – it doesn't affect routing, enrollment, or transaction support. Payers sharing a parent payer group may have different enrollment processes or other behaviors. This property is only returned when the payer has a parent payer group. - **`items[].payer.parentPayerGroupName`** (`string`): The name of the corporate or brand group to which the payer belongs. The parent payer group is organizational metadata only – it doesn't affect routing, enrollment, or transaction support. Payers sharing a parent payer group may have different enrollment processes or other behaviors. This property is only returned when the payer has a parent payer group. - **`items[].payer.primaryPayerId`** (`string`) (required): The most commonly used ID for a payer. This value often corresponds to the name the payer uses internally and provides to patients on member ID cards. - **`items[].payer.programs`** (`array of strings`) (required): A list of insurance programs that this payer participates in. For example: `["MEDICAID", "MEDICARE"]`. If Stedi hasn't assigned any programs to this payer, this array is empty. - **`items[].payer.stediId`** (`string`) (required): A unique ID that Stedi assigned to this payer and uses internally for routing requests. This ID will not change even if the `primaryPayerId` is updated. - **`items[].payer.transactionSupport`** (`object`) (required): Whether the following transaction types are supported: 270 eligibility checks, 276/277 claim status requests, 837 claims (professional, dental, institutional), 835 ERAs (claim payments), 275 unsolicited claim attachments, coordination of benefits checks, Electronic Funds Transfer (EFT), and 835 ERA with Electronic Funds Transfer (EFT). If the value is `ENROLLMENT_REQUIRED`, Stedi supports the transaction type, but you must [enroll with the payer](https://www.stedi.com/docs/healthcare/supported-payers#enrollment) first. - **`items[].payer.transactionSupport.claimPayment`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.claimPaymentAdviceWithElectronicFundsTransfer`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.claimStatus`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.coordinationOfBenefits`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.dentalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.electronicFundsTransfer`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.eligibilityCheck`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.institutionalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.professionalClaimSubmission`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.transactionSupport.unsolicitedClaimAttachment`** (`string`) (required) - Allowed values: `SUPPORTED`, `NOT_SUPPORTED`, `ENROLLMENT_REQUIRED` - **`items[].payer.urls`** (`object`): URLs associated with a payer. - **`items[].payer.urls.website`** (`string`): The payer's website URL. - **`items[].score`** (`number`) (required): A relevance score indicating how well this payer matched the search query. Higher scores are better matches. The minimum score is 0. - **`nextPageToken`** (`string`): Token that you can supply in subsequent requests to retrieve the next page of results. If not returned, there are no more results. - **`stats`** (`object`) (required) - **`stats.total`** (`integer`) (required): Total number of payers matching the search query. - **`stats.transactionSupport`** (`object`) (required) - **`stats.transactionSupport.claimPayment`** (`object`) (required) - **`stats.transactionSupport.claimPayment.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.claimPayment.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.claimPayment.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.claimPaymentAdviceWithElectronicFundsTransfer`** (`object`) (required) - **`stats.transactionSupport.claimPaymentAdviceWithElectronicFundsTransfer.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.claimPaymentAdviceWithElectronicFundsTransfer.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.claimPaymentAdviceWithElectronicFundsTransfer.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.claimStatus`** (`object`) (required) - **`stats.transactionSupport.claimStatus.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.claimStatus.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.claimStatus.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.coordinationOfBenefits`** (`object`) (required) - **`stats.transactionSupport.coordinationOfBenefits.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.coordinationOfBenefits.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.coordinationOfBenefits.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.dentalClaimSubmission`** (`object`) (required) - **`stats.transactionSupport.dentalClaimSubmission.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.dentalClaimSubmission.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.dentalClaimSubmission.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.electronicFundsTransfer`** (`object`) (required) - **`stats.transactionSupport.electronicFundsTransfer.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.electronicFundsTransfer.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.electronicFundsTransfer.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.eligibilityCheck`** (`object`) (required) - **`stats.transactionSupport.eligibilityCheck.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.eligibilityCheck.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.eligibilityCheck.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.institutionalClaimSubmission`** (`object`) (required) - **`stats.transactionSupport.institutionalClaimSubmission.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.institutionalClaimSubmission.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.institutionalClaimSubmission.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.professionalClaimSubmission`** (`object`) (required) - **`stats.transactionSupport.professionalClaimSubmission.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.professionalClaimSubmission.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.professionalClaimSubmission.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupport.unsolicitedClaimAttachment`** (`object`) (required) - **`stats.transactionSupport.unsolicitedClaimAttachment.enrollmentRequired`** (`integer`) (required): Number of matching payers that require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment) for this transaction type. - **`stats.transactionSupport.unsolicitedClaimAttachment.notSupported`** (`integer`) (required): Number of matching payers that don't support this transaction type. - **`stats.transactionSupport.unsolicitedClaimAttachment.supported`** (`integer`) (required): Number of matching payers that support this transaction type. - **`stats.transactionSupportCounts`** (`object`) (required) - **`stats.transactionSupportCounts.claimPayment`** (`object`) (required) - **`stats.transactionSupportCounts.claimPayment.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.claimPayment.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.claimPayment.supported`** (`object`) (required) - **`stats.transactionSupportCounts.claimPayment.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.claimPayment.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.claimPayment.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.claimPaymentAdviceWithElectronicFundsTransfer`** (`object`) (required) - **`stats.transactionSupportCounts.claimPaymentAdviceWithElectronicFundsTransfer.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.claimPaymentAdviceWithElectronicFundsTransfer.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.claimPaymentAdviceWithElectronicFundsTransfer.supported`** (`object`) (required) - **`stats.transactionSupportCounts.claimPaymentAdviceWithElectronicFundsTransfer.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.claimPaymentAdviceWithElectronicFundsTransfer.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.claimPaymentAdviceWithElectronicFundsTransfer.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.claimStatus`** (`object`) (required) - **`stats.transactionSupportCounts.claimStatus.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.claimStatus.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.claimStatus.supported`** (`object`) (required) - **`stats.transactionSupportCounts.claimStatus.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.claimStatus.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.claimStatus.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.coordinationOfBenefits`** (`object`) (required) - **`stats.transactionSupportCounts.coordinationOfBenefits.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.coordinationOfBenefits.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.coordinationOfBenefits.supported`** (`object`) (required) - **`stats.transactionSupportCounts.coordinationOfBenefits.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.coordinationOfBenefits.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.coordinationOfBenefits.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.dentalClaimSubmission`** (`object`) (required) - **`stats.transactionSupportCounts.dentalClaimSubmission.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.dentalClaimSubmission.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.dentalClaimSubmission.supported`** (`object`) (required) - **`stats.transactionSupportCounts.dentalClaimSubmission.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.dentalClaimSubmission.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.dentalClaimSubmission.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.electronicFundsTransfer`** (`object`) (required) - **`stats.transactionSupportCounts.electronicFundsTransfer.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.electronicFundsTransfer.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.electronicFundsTransfer.supported`** (`object`) (required) - **`stats.transactionSupportCounts.electronicFundsTransfer.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.electronicFundsTransfer.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.electronicFundsTransfer.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.eligibilityCheck`** (`object`) (required) - **`stats.transactionSupportCounts.eligibilityCheck.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.eligibilityCheck.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.eligibilityCheck.supported`** (`object`) (required) - **`stats.transactionSupportCounts.eligibilityCheck.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.eligibilityCheck.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.eligibilityCheck.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.institutionalClaimSubmission`** (`object`) (required) - **`stats.transactionSupportCounts.institutionalClaimSubmission.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.institutionalClaimSubmission.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.institutionalClaimSubmission.supported`** (`object`) (required) - **`stats.transactionSupportCounts.institutionalClaimSubmission.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.institutionalClaimSubmission.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.institutionalClaimSubmission.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.professionalClaimSubmission`** (`object`) (required) - **`stats.transactionSupportCounts.professionalClaimSubmission.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.professionalClaimSubmission.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.professionalClaimSubmission.supported`** (`object`) (required) - **`stats.transactionSupportCounts.professionalClaimSubmission.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.professionalClaimSubmission.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.professionalClaimSubmission.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). - **`stats.transactionSupportCounts.unsolicitedClaimAttachment`** (`object`) (required) - **`stats.transactionSupportCounts.unsolicitedClaimAttachment.notSupported`** (`object`) (required) - **`stats.transactionSupportCounts.unsolicitedClaimAttachment.notSupported.total`** (`integer`) (required): Total number of matching payers that don't support this transaction type. - **`stats.transactionSupportCounts.unsolicitedClaimAttachment.supported`** (`object`) (required) - **`stats.transactionSupportCounts.unsolicitedClaimAttachment.supported.enrollmentNotRequired`** (`integer`) (required): Number of matching payers that support this transaction type and don't require transaction enrollment. - **`stats.transactionSupportCounts.unsolicitedClaimAttachment.supported.enrollmentRequired`** (`integer`) (required): Number of matching payers that support this transaction type and require [transaction enrollment](https://www.stedi.com/docs/healthcare/transaction-enrollment). - **`stats.transactionSupportCounts.unsolicitedClaimAttachment.supported.total`** (`integer`) (required): Total number of matching payers that support this transaction type (`enrollmentRequired` + `enrollmentNotRequired`). **Example:** ```json { "items": [ { "matches": { "names": [ "Highmark Blue Cross Blue Shield", "Highmark Blue Cross Blue Shield Pennsylvania", "Highmark Blue Cross Blue Shield Pennsylvania Professional", "Highmark Blue Shield", "Keystone Health Plan West - Community Blue HMO" ] }, "payer": { "aliases": [ "10046", "100900", "10264", "10524", "2413", "54771", "95462", "PABCBS", "PABLS", "SB865", "SB865MA", "SZXAY" ], "avatarUrl": "https://prod-payer-avatars.payers.us.stedi.com/GUFCO/avatar.png?v=1763077235241", "conciseName": "Highmark PA", "coverageTypes": [ "dental", "medical", "vision" ], "displayName": "Highmark of Pennsylvania", "enrollment": { "ptanRequired": false, "transactionEnrollmentProcesses": { "claimPayment": { "requestedEffectiveDate": "NOT_SUPPORTED", "supportedAggregationPreferences": [ "NPI", "TIN" ], "timeframe": "DAYS", "type": "ONE_CLICK" }, "claimStatusInquiry": { "timeframe": "DAYS", "type": "ONE_CLICK" } } }, "names": [ "Highmark Blue Cross Blue Shield", "Highmark Blue Cross Blue Shield Pennsylvania", "Highmark Blue Cross Blue Shield Pennsylvania Professional", "Highmark Blue Shield", "Keystone Health Plan West - Community Blue HMO", "First Priority Life Insurance Company (FPLIC) Out-of-Area Claims", "Highmark of Pennsylvania - Medicare Advantage" ], "operatingStates": [ "PA" ], "parentPayerGroupId": "QOSPQ", "parentPayerGroupName": "Highmark", "primaryPayerId": "54771", "programs": [ "MEDICARE_ADVANTAGE" ], "stediId": "GUFCO", "transactionSupport": { "claimPayment": "ENROLLMENT_REQUIRED", "claimPaymentAdviceWithElectronicFundsTransfer": "NOT_SUPPORTED", "claimStatus": "ENROLLMENT_REQUIRED", "coordinationOfBenefits": "SUPPORTED", "dentalClaimSubmission": "NOT_SUPPORTED", "electronicFundsTransfer": "ENROLLMENT_REQUIRED", "eligibilityCheck": "ENROLLMENT_REQUIRED", "institutionalClaimSubmission": "NOT_SUPPORTED", "professionalClaimSubmission": "SUPPORTED", "unsolicitedClaimAttachment": "NOT_SUPPORTED" } }, "score": 2314894167593451500 } ], "stats": { "total": 142, "transactionSupport": { "claimPayment": { "enrollmentRequired": 113, "notSupported": 29, "supported": 0 }, "claimPaymentAdviceWithElectronicFundsTransfer": { "enrollmentRequired": 0, "notSupported": 142, "supported": 0 }, "claimStatus": { "enrollmentRequired": 3, "notSupported": 55, "supported": 84 }, "coordinationOfBenefits": { "enrollmentRequired": 0, "notSupported": 114, "supported": 28 }, "dentalClaimSubmission": { "enrollmentRequired": 2, "notSupported": 95, "supported": 45 }, "electronicFundsTransfer": { "enrollmentRequired": 113, "notSupported": 29, "supported": 0 }, "eligibilityCheck": { "enrollmentRequired": 5, "notSupported": 33, "supported": 104 }, "institutionalClaimSubmission": { "enrollmentRequired": 10, "notSupported": 30, "supported": 102 }, "professionalClaimSubmission": { "enrollmentRequired": 9, "notSupported": 16, "supported": 117 }, "unsolicitedClaimAttachment": { "enrollmentRequired": 0, "notSupported": 109, "supported": 33 } }, "transactionSupportCounts": { "claimPayment": { "notSupported": { "total": 29 }, "supported": { "enrollmentNotRequired": 0, "enrollmentRequired": 113, "total": 113 } }, "claimPaymentAdviceWithElectronicFundsTransfer": { "notSupported": { "total": 142 }, "supported": { "enrollmentNotRequired": 0, "enrollmentRequired": 0, "total": 0 } }, "claimStatus": { "notSupported": { "total": 55 }, "supported": { "enrollmentNotRequired": 84, "enrollmentRequired": 3, "total": 87 } }, "coordinationOfBenefits": { "notSupported": { "total": 114 }, "supported": { "enrollmentNotRequired": 28, "enrollmentRequired": 0, "total": 28 } }, "dentalClaimSubmission": { "notSupported": { "total": 95 }, "supported": { "enrollmentNotRequired": 45, "enrollmentRequired": 2, "total": 47 } }, "electronicFundsTransfer": { "notSupported": { "total": 29 }, "supported": { "enrollmentNotRequired": 0, "enrollmentRequired": 113, "total": 113 } }, "eligibilityCheck": { "notSupported": { "total": 33 }, "supported": { "enrollmentNotRequired": 104, "enrollmentRequired": 5, "total": 109 } }, "institutionalClaimSubmission": { "notSupported": { "total": 30 }, "supported": { "enrollmentNotRequired": 102, "enrollmentRequired": 10, "total": 112 } }, "professionalClaimSubmission": { "notSupported": { "total": 16 }, "supported": { "enrollmentNotRequired": 117, "enrollmentRequired": 9, "total": 126 } }, "unsolicitedClaimAttachment": { "notSupported": { "total": 109 }, "supported": { "enrollmentNotRequired": 33, "enrollmentRequired": 0, "total": 33 } } } } } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Retrieve Transaction Input Source: https://www.stedi.com/docs/healthcare/api-reference/get-transactions-input This endpoint retrieves a transaction's input document before it passes through any translation or mappings. The input document can be in either X12 EDI or JSON format, depending on the direction of the transaction. For example, if a payer sends you an 835 ERA, the input document will be in the original X12 EDI format. Note that when the input is X12 EDI, the document only includes the transaction information (`ST` to `SE` segments) and doesn't include the envelope. To retrieve the full X12 EDI document with the envelope, use the [Retrieve File Execution Input](/healthcare/api-reference/get-execution-input) endpoint instead. There are no size restrictions on documents when fetching from this endpoint. ## Response [#response] This endpoint returns a `302` Temporary redirect to the document download URL. Many HTTP clients will automatically follow this redirect, or have a simple follow redirects configuration to set. For example, using the `-L` or `--location` flag in cURL will automatically follow the redirect. In this case, the response will contain the full transaction input document. If your implementation doesn't automatically follow the redirect, the response body contains a JSON object with a single key `documentDownloadUrl`. This property contains a temporary URL to download the document. The URL expires after 60 minutes. ## API Specification Retrieve a transaction's input document. **Endpoint:** `GET /transactions/{transactionId}/input` **Base URL:** `https://core.us.stedi.com/2023-08-01` ### Parameters - **`transactionId`** (path) (required): A unique identifier for the processed transaction within Stedi. This ID is included in the transaction processed event, or you can retrieve it manually from the transaction's details page within the Stedi portal. - Type: `string` ### Responses #### 302 GetTransactionInputDocument 302 response **Schema:** `GetTransactionInputDocumentResponseContent` **Properties:** - **`documentDownloadUrl`** (`string`): A URL to download the document. This URL is available for 60 minutes. **Example:** ```json { "documentDownloadUrl": "https://stedi-default-core-artifacts.s3.us-east-1.amazonaws.com/55907f88-999e-4912-9e9..." } ``` #### 400 BadRequestException 400 response **Schema:** `BadRequestExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 409 ResourceUnderChangeException 409 response **Schema:** `ResourceUnderChangeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) #### 422 UnprocessableEntityException 422 response **Schema:** `UnprocessableEntityExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 500 ServiceException 500 response **Schema:** `ServiceExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`exceptionCause`** (`object`) - **`exceptionCause.name`** (`string`) - **`exceptionCause.message`** (`string`) - **`exceptionCause.stack`** (`string`) #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) # Retrieve Transaction Output Source: https://www.stedi.com/docs/healthcare/api-reference/get-transactions-output This endpoint retrieves a transaction's output document, which is the result after Stedi has finished translating and mapping the input document. The output document can be in either X12 EDI or JSON format, depending on the direction of the transaction. For example, if a payer sends you an 835 ERA, the output document will be a JSON representation of the 835 ERA. Note that when the output is X12 EDI, the document only includes the transaction information (`ST` to `SE` segments) and doesn't include the envelope. There are no size restrictions on documents when fetching from this endpoint. ## Response [#response] This endpoint returns a `302` Temporary redirect to the document download URL. Many HTTP clients will automatically follow this redirect, or have a simple follow redirects configuration to set. For example, using the `-L` or `--location` flag in cURL will automatically follow the redirect. In this case, the response body will contain the full transaction output document. If your implementation doesn't automatically follow the redirect, the response body contains a JSON object with a single key `documentDownloadUrl`. This property contains a temporary URL to download the document. The URL expires after 60 minutes. ## API Specification Retrieve a transaction's output document. **Endpoint:** `GET /transactions/{transactionId}/output` **Base URL:** `https://core.us.stedi.com/2023-08-01` ### Parameters - **`transactionId`** (path) (required): A unique identifier for the processed transaction within Stedi. This ID is included in the transaction processed event, or you can retrieve it manually from the transaction's details page within the Stedi portal. - Type: `string` ### Responses #### 302 GetTransactionOutputDocument 302 response **Schema:** `GetTransactionOutputDocumentResponseContent` **Properties:** - **`documentDownloadUrl`** (`string`): A URL to download the document. This URL is available for 60 minutes. **Example:** ```json { "documentDownloadUrl": "https://stedi-default-core-artifacts.s3.us-east-1.amazonaws.com/55907f88-999e-4912-9e9..." } ``` #### 400 BadRequestException 400 response **Schema:** `BadRequestExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 409 ResourceUnderChangeException 409 response **Schema:** `ResourceUnderChangeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) #### 422 UnprocessableEntityException 422 response **Schema:** `UnprocessableEntityExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 500 ServiceException 500 response **Schema:** `ServiceExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`exceptionCause`** (`object`) - **`exceptionCause.name`** (`string`) - **`exceptionCause.message`** (`string`) - **`exceptionCause.stack`** (`string`) #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) # Retrieve Transaction Source: https://www.stedi.com/docs/healthcare/api-reference/get-transactions This endpoint retrieves information about the transaction with the specified `transactionId`. ## API Specification Fetch details for a specific transaction. **Endpoint:** `GET /transactions/{transactionId}` **Base URL:** `https://core.us.stedi.com/2023-08-01` ### Parameters - **`transactionId`** (path) (required): A unique identifier for the processed transaction within Stedi. This ID is included in the transaction processed event. You can also retrieve it manually from the transaction's details page within the Stedi portal. - Type: `string` ### Responses #### 200 GetTransaction 200 response **Schema:** `GetTransactionResponseContent` **Properties:** - **`transactionId`** (`string`) (required): A unique identifier for the processed transaction within Stedi. This ID is included in the transaction processed event. You can also retrieve it manually from the transaction's details page within the Stedi portal. - **`fileExecutionId`** (`string`) (required): A unique identifier for the processed file within Stedi. This ID is included in the transaction processed event. You can also retrieve it manually from the file's details page in the Stedi portal. - **`status`** (`string`) (required): A status indicating whether Stedi was able to successfully process the transaction. - Allowed values: `failed`, `succeeded` - **`direction`** (`string`) (required): The direction of the transaction. Inbound transactions are those you receive from a payer, provider, or other trading partner. Outbound transactions are those you send to a payer, provider, or other trading partner. - Allowed values: `INBOUND`, `OUTBOUND`, `UNKNOWN` - **`mode`** (`string`) (required): Indicates whether the transaction contains test or production data. Stedi determines this from the value in [`ISA15` Usage Indicator Code](https://www.stedi.com/edi/x12/segment/ISA#ISA-15). - Allowed values: `test`, `production`, `other` - **`processedAt`** (`string`) (required): The date and time when Stedi processed the transaction, in ISO 8601 format. For example, `2023-08-28T00:00:00Z`. - **`artifacts`** (`array of Artifact objects`) (required): A list of artifacts related to the transaction. - **`artifacts[].artifactType`** (`string`) (required): The format of the artifact. - Allowed values: `text/csv`, `application/edifact`, `application/filepart`, `application/json`, `application/pdf`, `text/psv`, `text/tsv`, `application/edi-x12`, `application/xml`, `application/zip`, `image/jpeg`, `image/png`, `image/tiff`, `text/plain`, `unknown` - **`artifacts[].usage`** (`string`) (required): The type of data the artifact contains. For example, an input artifact represents the original data Stedi received before processing, while an output artifact represents the processed data. For example, for an inbound 835 ERA from a payer, the input artifact would be the original X12 EDI, and the output artifact would be the JSON representation of the ERA. - Allowed values: `attachment`, `input`, `metadata`, `output` - **`artifacts[].sizeBytes`** (`number`) (required): The size of the artifact in bytes. - **`artifacts[].url`** (`string`) (required): A URL to download the artifact. - **`artifacts[].model`** (`string`) (required): The model of the artifact, which indicates the type of process or operation it represents. For example, an execution artifact represents a file that was processed, a fragment artifact represents a part of a larger transaction, and a fault artifact represents an error that occurred during processing. - Allowed values: `execution`, `fragment`, `transaction`, `fault` - **`partnership`** (`object`) (required): Information about the associated partnership. A partnership describes all aspects of the EDI relationship between two profiles in your Stedi account, such as which transaction sets they will exchange and other important information for processing EDI files. If you're sending or receiving transactions through the Stedi clearinghouse, Stedi configures the necessary partnership for you automatically when you set up your account. - **`partnership.partnershipId`** (`string`) (required): The unique identifier for the partnership within the Stedi platform. A partnership describes all aspects of the EDI relationship between two profiles in your Stedi account, such as which transaction sets they will exchange and other important information for processing EDI files. If you're sending or receiving transactions through the Stedi clearinghouse, Stedi configures the necessary partnerships for you automatically when you set up your account. - **`partnership.partnershipType`** (`string`) (required): The type of partnership, which determines the EDI standard used for exchanging transactions. - Allowed values: `x12`, `edifact` - **`partnership.sender`** (`object`) (required): The entity that initiated the transaction. - **`partnership.sender.profileId`** (`string`) (required): A unique identifier for the profile within the Stedi platform. - **`partnership.receiver`** (`object`) (required): The entity that is receiving the transaction. - **`partnership.receiver.profileId`** (`string`) (required): A unique identifier for the profile within the Stedi platform. - **`x12`** (`object`): Details about the X12 EDI transaction. - **`x12.metadata`** (`object`) (required): Metadata about the X12 EDI transaction, including information from the interchange, functional group, and transaction headers as well as the sender and receiver IDs. - **`x12.metadata.interchange`** (`object`) (required): Data from the Interchange Control Header of the X12 EDI file. - **`x12.metadata.interchange.acknowledgmentRequestedCode`** (`string`) (required): The value of [`ISA14`](https://www.stedi.com/edi/x12/segment/ISA#ISA-14) in the Interchange Control Header, which indicates whether the sender is requesting a [`TA1` Interchange Acknowledgment](https://www.stedi.com/edi/x12/segment/TA1). - **`x12.metadata.interchange.controlNumber`** (`number`) (required): The control number in the Interchange Control Header. - **`x12.metadata.functionalGroup`** (`object`) (required): Data from the Functional Group Header of the X12 EDI file. - **`x12.metadata.functionalGroup.controlNumber`** (`number`) (required): The Group Control Number ([`GS06`](https://www.stedi.com/edi/x12/segment/GS#GS-06)). - **`x12.metadata.functionalGroup.date`** (`string`) (required): The date in the Functional Group Header ([`GS04`](https://www.stedi.com/edi/x12/segment/GS#GS-04)), formatted as `YYYY-MM-DD`. For example, `2023-08-28`. - **`x12.metadata.functionalGroup.functionalIdentifierCode`** (`string`) (required): The Functional Identifier Code ([`GS01`](https://www.stedi.com/edi/x12/segment/GS#GS-01)), which indicates the type of transaction. For example, `HC` for an 837 Healthcare Claim. - **`x12.metadata.functionalGroup.time`** (`string`) (required): The Time ([`GS05`](https://www.stedi.com/edi/x12/segment/GS#GS-05)), formatted as `HH:MM:SS`. For example, `21:29:57`. - **`x12.metadata.functionalGroup.release`** (`string`) (required): The Version/Release/Industry Identifier Code ([`GS08`](https://www.stedi.com/edi/x12/segment/GS#GS-08)), which indicates the version of the X12 standard used. For example, `005010X222A1`. - **`x12.metadata.transaction`** (`object`) (required): Data from the Transaction Set Header of the X12 EDI file. - **`x12.metadata.transaction.controlNumber`** (`string`) (required): The Transaction Set Control Number ([`ST02`](https://www.stedi.com/edi/x12/segment/ST#ST-02)). - **`x12.metadata.transaction.transactionSetIdentifier`** (`string`) (required): The Transaction Set Identifier Code ([`ST01`](https://www.stedi.com/edi/x12/segment/ST#ST-01)), which indicates the type of transaction. For example, `837` for an 837 Healthcare Claim. - **`x12.metadata.sender`** (`object`) (required): The Application Code and ISA ID for the profile. - **`x12.metadata.sender.applicationCode`** (`string`) (required): The Application Code for the profile, which is used to identify the entity in the `GS` header of an EDI file. - **`x12.metadata.sender.isa`** (`object`) (required): The Interchange ID and qualifier. - **`x12.metadata.sender.isa.qualifier`** (`string`) (required): The Interchange Sender ID Qualifier, which indicates the type of identifier. For example, `ZZ` for a mutually defined identifier. - **`x12.metadata.sender.isa.id`** (`string`) (required): The Interchange ID, which is the unique identifier for the entity in the EDI file. - **`x12.metadata.receiver`** (`object`) (required): The Application Code and ISA ID for the profile. - **`x12.metadata.receiver.applicationCode`** (`string`) (required): The Application Code for the profile, which is used to identify the entity in the `GS` header of an EDI file. - **`x12.metadata.receiver.isa`** (`object`) (required): The Interchange ID and qualifier. - **`x12.metadata.receiver.isa.qualifier`** (`string`) (required): The Interchange Sender ID Qualifier, which indicates the type of identifier. For example, `ZZ` for a mutually defined identifier. - **`x12.metadata.receiver.isa.id`** (`string`) (required): The Interchange ID, which is the unique identifier for the entity in the EDI file. - **`x12.transactionSetting`** (`object`): The IDs for the guide and transaction setting Stedi used to process the transaction. - **`x12.transactionSetting.guideId`** (`string`): The unique identifier for the Stedi guide used to process the transaction. Stedi guides are machine-readable specifications for X12 EDI transactions. They describe how to structure and validate EDI files for each transaction type. - **`x12.transactionSetting.transactionSettingId`** (`string`): The unique identifier for the transaction setting Stedi used to process the transaction. Transaction settings configure how Stedi processes specific transaction types, such as which Stedi guide to use and other processing options. If you're using the Stedi clearinghouse, Stedi automatically configures the required transaction settings for you when you set up your account. - **`fragments`** (`object`): Details about fragments included in the transaction, if applicable. Fragments break large transactions into smaller parts for easier processing and management. - **`fragments.keyName`** (`string`) (required): The JSON schema key name for the segment in the Stedi guide used to split the transaction into fragments. For example, in an 834 Health Care Benefit Enrollment and Maintenance, this would be `member_level_detail_INS_loop`. - **`fragments.fragmentCount`** (`number`) (required): The total number of fragments in the transaction. - **`fragments.batchSize`** (`number`) (required): The maximum size of each fragment in kilobytes (KB). Stedi uses this to automatically split large inbound transactions into fragments. - **`translationErrors`** (`array of TranslationError objects`): Details about errors that prevented Stedi from processing the transaction. - **`translationErrors[].context`** (`object`) - **`translationErrors[].context.code`** (`string`): The error code. - **`translationErrors[].context.schemaPath`** (`string`): The name of the JSON property where the error occurred. - **`translationErrors[].mark`** (`object`): The location in the document where the problem occurred. May be a single index or a range. - **`translationErrors[].mark.start`** (`object`) (required) - **`translationErrors[].mark.start.line`** (`number`) (required): The line number in the document where the problem occurred. - **`translationErrors[].mark.start.column`** (`number`) (required): The column number in the document where the problem occurred. - **`translationErrors[].mark.end`** (`object`) - **`translationErrors[].mark.end.line`** (`number`) (required): The line number in the document where the problem occurred. - **`translationErrors[].mark.end.column`** (`number`) (required): The column number in the document where the problem occurred. - **`translationErrors[].message`** (`string`) (required): A message describing the error that occurred during translation. - **`businessIdentifiers`** (`array of BusinessIdentifier objects`): Any business identifiers extracted from the transaction. - **`businessIdentifiers[].elementId`** (`string`) (required): The identifier of the element containing the business identifier in the EDI specification. - **`businessIdentifiers[].element`** (`string`) (required): The element where the business identifier was found. For example, `BHT03` for 837 claims. - **`businessIdentifiers[].name`** (`string`) (required): The friendly name of the business identifier. For example, `Originator Application Transaction Identifier`. - **`businessIdentifiers[].value`** (`string`) (required): The value of the business identifier. **Example:** ```json { "direction": "INBOUND", "mode": "test", "status": "succeeded", "fileExecutionId": "95236a56-a020-4522-8fef-bcffcec0ec1d", "transactionId": "c8dd3a67-b8ca-4b0e-aa73-e0de82414b8f", "processedAt": "2025-04-02T21:30:15.801Z", "artifacts": [ { "artifactType": "application/edi-x12", "sizeBytes": 8374, "model": "transaction", "usage": "input", "url": "https://core.us.stedi.com/2023-08-01/transactions/c8dd1111-b8ca-4330e-aa73-e0de33314b8f/input" }, { "artifactType": "application/json", "sizeBytes": 76898, "model": "transaction", "usage": "output", "url": "https://core.us.stedi.com/2023-08-01/transactions/c8dd3a67-b8ca-4b0e-kk73-55667882414b8f/output" } ], "partnership": { "partnershipId": "stedi_test-sender", "partnershipType": "x12", "sender": { "profileId": "test-sender" }, "receiver": { "profileId": "stedi" } }, "businessIdentifiers": [ { "elementId": "127", "element": "BHT-03", "name": "Reference Identification", "value": "XXXXXX" } ], "x12": { "metadata": { "interchange": { "acknowledgmentRequestedCode": "0", "controlNumber": 1 }, "functionalGroup": { "controlNumber": 1, "release": "005010X222A1", "date": "2025-04-02", "time": "21:29:57", "functionalIdentifierCode": "HC" }, "transaction": { "controlNumber": "0001", "transactionSetIdentifier": "837" }, "receiver": { "applicationCode": "STEDI-TEST", "isa": { "qualifier": "ZZ", "id": "STEDI-TEST" } }, "sender": { "applicationCode": "TestSender", "isa": { "qualifier": "ZZ", "id": "TestSender" } } }, "transactionSetting": { "guideId": "01JQW6E5RSBSTKS3ZQ1SPR4019", "transactionSettingId": "01JQW6E72Q3HDXM40YYAQCBZDY" } } } ``` #### 400 BadRequestException 400 response **Schema:** `BadRequestExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 409 ResourceUnderChangeException 409 response **Schema:** `ResourceUnderChangeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) #### 422 UnprocessableEntityException 422 response **Schema:** `UnprocessableEntityExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 500 ServiceException 500 response **Schema:** `ServiceExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`exceptionCause`** (`object`) - **`exceptionCause.name`** (`string`) - **`exceptionCause.message`** (`string`) - **`exceptionCause.stack`** (`string`) #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) # API Reference Source: https://www.stedi.com/docs/healthcare/api-reference Authenticate with Stedi's API and handle pagination, errors, limits, and idempotency. Download Stedi's OpenAPI specs. You can download our [OpenAPI](https://www.openapis.org/) specs. OpenAPI is a standard, machine-readable format for describing HTTP APIs. You can use our OpenAPI spec for reference or to generate client code. ## Clearinghouse APIs [#clearinghouse-apis] Our APIs allow you to automate business flows like [eligibility checks](/healthcare/api-reference/post-eligibility-check) and [claims processing](/healthcare/api-reference/post-create-professional-claim-json). We also offer APIs for retrieving [Stedi's up-to-date payer list](/healthcare/api-reference/get-payers) and [provider enrollments](/healthcare/api-reference/post-enrollment-create-provider) with payers. ## Authentication [#authentication] You need an API key to use any Stedi API. You pass the API key in the `Authorization` header of every request and Stedi determines which resources you can access. ### API key types [#api-key-types] You can create two types of API keys: test and production. Test API keys let you send requests to Stedi healthcare APIs and receive realistic responses so you can test your integration without sending data to payers. Stedi supports test API keys for real-time eligibility checks and claims processing: - **Real-time eligibility checks:** You can send approved test requests to receive mock responses. Visit [Mock eligibility requests](/healthcare/api-reference/mock-requests-eligibility-checks) for the list of approved test requests. - **Claims processing:** Stedi supports test keys for all claims processing endpoints except for [Real-Time Claim Status (276/277) JSON](/healthcare/api-reference/post-healthcare-claim-status) and [Real-Time Claim Status (276/277) Raw X12](/healthcare/api-reference/post-healthcare-claim-status-raw-x12). Production API keys allow you to send transactions to trading partners and payers. All Stedi APIs support production API keys. ### Creating an API key [#creating-an-api-key] To create an API key: 1. Log into your [Stedi account](https://portal.stedi.com/app). 1. Click **API keys** in the side navigation. 1. Click **+ Generate new API Key**. 1. Enter descriptive name for the API key. 1. Choose **Test** or **Production** as the **Mode**. 1. Click **Generate**. 1. Copy your key and store it in a secure location. Make sure you copy your API key and store it in a safe location. Once you close the modal, Stedi will not show the API key again. ### API key access [#api-key-access] Within your Stedi account, members can be assigned to roles with different permissions. Production API keys inherit the permissions of the account member who created them and keep those permissions even if the creator's role is later updated. ### Passing the API key [#passing-the-api-key] Every request you send needs to include an API key. You pass the API key in the `Authorization` header. For example, if your API key is `Jclcke.ZHqS3demo4dS16XZ1KeyBY7`, you would insert it into the header according to the following example: ```bash curl --request POST \ --url https://core.us.stedi.com/2023-08-01/x12/partnerships/{partnershipId}/generate-edi \ --header 'Authorization: Jclcke.ZHqS3demo4dS16XZ1KeyBY7' \ --header 'Content-Type: application/json' \ --data '{ ... }' ``` Stedi supports the previous method of prefixing the API key with `Key` (for example, `Authorization: Key Jclcke.ZHqS3demo4dS16XZ1KeyBY7`) for backwards-compatibility. ### Deleting an API key [#deleting-an-api-key] API keys don't expire automatically. To revoke an API key, delete it from the [API keys page](https://portal.stedi.com/app/settings/developer/api-keys) in your Stedi account. ## Pagination [#pagination] When you request a list of resources, the response may contain a subset of available responses. In that case, the response includes a key called `next_page_token`. To retrieve the next page of results, repeat the request, but add the query parameter `page_token` and give it the value you received in the response. For example, when you call the [List Transactions API](/healthcare/api-reference/get-list-transactions), the result contains a list of every transaction within your Stedi account and a token for the next page. ```javascript { "items": [ ... ], "next_page_token": "2t7M75ZN1w4OnYFKKT0SUkT95w_ULzPR" } ``` You can then request the next page of results like this: ```bash curl --request GET \ --url https://core.us.stedi.com/2023-08-01/transactions?page_token=2t7M75ZN1w4OnYFKKT0SUkT95w_ULzPR \ --header "Authorization: ${STEDI_API_KEY}" ``` As long as the response contains `next_page_token`, there are more results available. If a response doesn't contain `next_page_token`, then you're on the last page. ## Error responses [#error-responses] If you make a request that the API can't fulfill, the response code will be in the `4xx` range and the response body will contain the following two fields. - `error` – A code indicating what went wrong. - `message` – A human-readable message describing what went wrong. You can use `error` to write code that handles the error and you can use `message` when you're debugging the problem yourself. If a response needs to report multiple errors, it will include an array called `errors`, but even in that case, the `error` and `message` fields will be available at top level. It's possible for a response to contain both a result and an error. This happens when something went wrong, but the API is able to give a partial or best-effort result. ### `403` Unauthorized [#403-unauthorized] When you receive a `403` error from Stedi, it's likely due to one of the following reasons: - Your API key is invalid or expired. - You accidentally sent a `GET` request to an endpoint that only accepts `POST` requests. - Your IP address was previously flagged as malicious. Stedi uses the Amazon Web Services (AWS) Web Application Filter (WAF) as a layer of security for our APIs. Our WAF configurations include AWS-managed rules that determine whether to allow or block each request. One set of rules blocks requests when [AWS determines the source IP address is malicious](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html#aws-managed-rule-groups-ip-rep-amazon), based on Amazon internal threat intelligence. We've seen this happen most often with requests sent from Google Cloud Platform (GCP), but it can occasionally happen with requests sent through other platforms as well. You can fix this issue by routing your requests through a dedicated virtual private cloud (VPC) with a static IP address. ## Limits [#limits] Stedi enforces two types of limits on API endpoints to ensure system stability and fair usage across all customers: - **Rate limits** control how many requests you can send per second. The rate limit is a pool across all endpoints in each category. - **Concurrency limits** control how many requests Stedi processes simultaneously (in-flight requests). Some endpoints share a concurrency pool, while others have individual limits. A request must meet both limits to succeed. For example: - Claims processing endpoints share a rate limit pool of 100 total requests per second. For example, you could send 40 requests to the Create Professional Claim JSON endpoint and 60 requests to the Dental Claims JSON endpoint in the same second. - However, claim submission endpoints are also part of a shared concurrency pool that allows up to 100 concurrent requests across all included endpoints. If 100 requests are already processing in that concurrency pool, Stedi rejects additional requests even if you haven't exceeded the per-second rate limit. When you exceed either a rate limit or concurrency limit, Stedi rejects additional requests with a `429` HTTP status code. Rejected requests have the following error message: ```json { "message": "The request can't be submitted because the sender's submission has been throttled: CUSTOMER_LIMIT", "code": "TOO_MANY_REQUESTS" } ``` ### Rate limits [#rate-limits] Stedi enforces the following rate limits. The rate limit is a pool across all endpoints in each category: {/* prettier-ignore-start */} | Endpoints | Rate limit | | --- | --- | | Claims processing
  • Create Professional Claim JSON
  • Validate Professional Claim JSON
  • Retrieve Professional Claim JSON
  • 837P JSON (Legacy)
  • 837P Raw X12
  • 837D JSON
  • 837D Raw X12
  • 837I JSON
  • 837I Raw X12
  • CMS-1500 PDF: Business Identifier
  • CMS-1500 PDF: Transaction ID
  • Create Claim Attachment JSON
  • Submit Claim Attachment Raw X12
  • 277CA Report
  • 835 ERA Report
  • 835 ERA PDF
| 100 requests/second | | Transaction enrollment
  • Create Provider
  • Retrieve Provider
  • List Providers
  • Update Provider
  • Delete Provider
  • Create Enrollment
  • Retrieve Enrollment
  • Download Enrollment Document
  • List Enrollments
  • Update Enrollment
  • Update Enrollment Task
  • Upload Enrollment Document
  • Delete Enrollment
  • Delete Enrollment Document
| 100 requests/second | {/* prettier-ignore-end */} ### Concurrency limits [#concurrency-limits] Stedi's clearinghouse endpoints are subject to the following concurrency limits per customer account. To request an increase to your default account concurrency limits, contact Stedi support in Slack or Teams. When endpoints share a concurrency pool, the total number of in-flight requests across all endpoints in the pool cannot exceed the shared limit. When endpoints are not pooled, the concurrency limit applies to that individual endpoint only. {/* prettier-ignore-start */} | Endpoints | Shared pool | Default concurrency limit | | --- | --- | --- | |
  • Real-Time Eligibility Check JSON
  • Real-Time Eligibility Check JSON (Legacy)
  • Real-Time Eligibility Check Raw X12
  • Real-Time Claim Status JSON
  • Real-Time Claim Status Raw X12
| Yes | 50 | |
  • Create Professional Claim JSON
  • Validate Professional Claim JSON
  • 837P JSON (Legacy)
  • 837P Raw X12
  • 837I JSON
  • 837I Raw X12
  • 837D JSON
  • 837D Raw X12
  • Create Claim Attachment JSON
  • Submit Claim Attachment Raw X12
| Yes | 100 | |
  • Retrieve Professional Claim JSON
  • CMS-1500 PDF: Business Identifier
  • CMS-1500 PDF: Transaction ID
  • 277CA Report
  • 835 ERA Report
| Yes | 100 | | Coordination of Benefits Check | No | 50 | | Insurance Discovery Check | No | 5 | | Insurance Discovery Check Results | No | 5 | {/* prettier-ignore-end */} ## API clients [#api-clients] We strongly recommend determining the HIPAA and other security requirements for your organization before you begin testing with an API client. At a minimum, if you're testing APIs that handle PHI (Protected Health Information) from your local machine, we recommend using a client that defaults to local-only storage. ### Not recommended [#not-recommended] We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. So if your company doesn't have a Business Associate Agreement (BAA) in place with Postman, you can unintentionally fall short of HIPAA requirements when testing. You can learn more about why Postman isn't safe for requests containing PHI in our blog: [Postman is probably not HIPAA compliant](https://www.stedi.com/blog/postman-is-probably-not-hipaa-compliant). ### Recommended [#recommended] The following open-source API clients have an offline-first approach. Each client also supports OpenAPI imports, which you can use to import the Stedi OpenAPI specs. - [Bruno](https://www.usebruno.com/): A local-only API client built to avoid cloud syncing. Bruno has several interfaces, including a desktop app, CLI, and VS Code extension. [GitHub repository](https://github.com/usebruno/bruno) - [Pororoca](https://pororoca.io/): A desktop-only API client with no cloud sync, built for secure local testing. Pororoca's data policy states that they don't sync data to remote servers. [GitHub repository](https://github.com/alexandrehtrb/Pororoca) - [Yaak](https://yaak.app/): A simple, fast desktop API client. Yaak supports several import formats, including Postman collections, OpenAPI, and Insomnia. [GitHub repository](https://github.com/mountain-loop/yaak) Ensure your security and compliance teams review the tool you choose carefully, especially because applications evolve over time. ## Idempotency keys [#idempotency-keys] Idempotency lets you make an API request multiple times without causing different outcomes. We **strongly recommend** adding idempotency keys to claim submission requests to prevent sending duplicate claims to payers when there are network errors or other intermittent failures. We support idempotency keys for the following endpoints: - [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) - [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) - [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) - [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims) - [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12) - [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) - [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12) - [Create Destination](/healthcare/api-reference/post-event-destinations-create-destination) - [Update Destination](/healthcare/api-reference/post-event-destinations-update-destination) - [Delete Destination](/healthcare/api-reference/delete-event-destinations-destination) - [Rotate Destination Secret](/healthcare/api-reference/post-event-destinations-rotate-destination-secret) ### How idempotency works [#how-idempotency-works] You can safely retry requests with the same idempotency key as many times as necessary within 24 hours after making the first request. Within the 24 hour period, if you reuse the same key with different request contents (change the HTTP method, path, or request body), Stedi returns a `422 Unprocessable Entity` error. After 24 hours, Stedi allows the request to execute again even if you submit the same idempotency token. If you reuse the same key on a new request while Stedi is still processing the original request, Stedi returns a `409 Conflict`. You can retry the request after the original request completes. The `409` response includes a `Retry-After` header indicating a suggested number of seconds to wait before retrying. ### Generating keys [#generating-keys] For APIs that support idempotency, you can generate and include an idempotency key within the `Idempotency-Key` header of your request. Our implementation conforms to the draft IETF [Idempotency-Key HTTP Header Field](https://datatracker.ietf.org/doc/draft-ietf-httpapi-idempotency-key-header/) RFC. The token can be any unique string, such as a UUID. Common approaches to generating tokens are: - Use an algorithm that generates a token with enough randomness, like UUID v4. - Derive the key from data related to the API call, like the provider control number. ### Adding keys to your request [#adding-keys-to-your-request] Once you have generated your idempotency key, include it in the header of your API request. The following example shows the header in a request: ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/submission \ --header 'Authorization: ${STEDI_API_KEY}' \ --header 'Idempotency-Key: 5b6f6d3e-2c6d-4e6f-8e6f-6d3e2c6d4e6f' \ --header 'Content-Type: application/json' \ --data '{ ... }' ``` ## API upgrades [#api-upgrades] We strive to maintain backwards compatibility. The following changes are considered backwards compatible: - New API resources - Additional optional parameters to API requests - Additional fields in API responses - Changes in the order of properties in API responses - Changes in human-readable error messages - Downgrading mandatory parameters to optional parameters. When we introduce a breaking change, we release a root-level, dated version. # List Claims Source: https://www.stedi.com/docs/healthcare/api-reference/list-claims Retrieve a paginated list of claim records with filters for status, patient control numbers, and submission date ranges. Each claim record contains summary information about its most recent submission, including processing status, charge and paid totals, patient information, and dates of service. Use this endpoint when you need to monitor claims across your account, build a claims dashboard, or search for specific claims. 1. Call this endpoint with optional query parameters to filter by status, patient control numbers, or submission date range. 2. Stedi returns a paginated list of claim records, ordered by most recent submission first. Each claim record shows summary information from that claim's most recent submission. To view the full history of submissions, acknowledgments, and payments for a specific claim, use the [Retrieve Claim Timeline](/healthcare/api-reference/get-claim-timeline) endpoint. ## API Specification Retrieve a paginated list of claim records, newest first. Filter by status, patient control numbers, or submission time **Endpoint:** `GET /claims` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Parameters - **`pageSize`** (query): The maximum number of claims to return per page. Defaults to 100. - Type: `number` - **`pageToken`** (query): The `nextPageToken` from a previous call to this operation. If not specified, Stedi returns the first page of results. - Type: `string` - **`status`** (query): Filter for claims with specific statuses. You can include this parameter multiple times to filter for multiple statuses. - `SUBMITTED`: You submitted the claim to Stedi but haven't yet received a 277CA response from Stedi or the payer. - `RECEIVED`: The clearinghouse or payer has acknowledged receipt of the claim. This doesn't mean the claim has been accepted for adjudication. - `ACCEPTED`: The payer has accepted the claim into their adjudication system and it's currently being processed or adjudicated. - `REJECTED`: Either Stedi or the payer rejected the claim before the start of adjudication. This can happen even when the payer has acknowledged receipt. - `PROCESSED`: The payer has adjudicated the claim. Check `totalClaimPaidAmount` to see how much was paid. - `DENIED`: The payer has denied the claim. - `UNKNOWN`: Stedi can't determine a single status for this claim, usually because the payer's responses are mixed or incomplete. - Type: `array` - **`patientControlNumbers`** (query): Filter for claims with specific patient control numbers. You can include this parameter multiple times to filter for multiple patient control numbers. - Type: `array` - **`submittedAfter`** (query): Filter for claims with `submittedAt` after this time. - Type: `string` - **`submittedBefore`** (query): Filter for claims with `submittedAt` before this time. - Type: `string` ### Responses #### 200 ListClaims 200 response **Schema:** `ListClaimsResponseContent` **Properties:** - **`items`** (`array of ClaimSummary objects`) (required): The claim records on this page, newest first by `submittedAt`. Each claim record includes summary information about the most recent submission, including processing status, charge and paid totals, patient name, dates of service, and claim type. - **`items[].datesOfService`** (`object`): A date range. `end` is inclusive. A single date of service carries only `start`. - **`items[].datesOfService.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`items[].datesOfService.start`** (`string`) (required): The start date of the range, in `YYYY-MM-DD` format. - **`items[].id`** (`string`) (required): A unique identifier for the claim within Stedi. This ID stays the same throughout the claim's entire lifecycle. For example, the claim ID is the same for the initial submission and any resubmissions. - **`items[].patientControlNumber`** (`string`) (required): The patient control number you assigned to the claim. - **`items[].patientName`** (`object`): The name of the patient who received the services on the claim. - **`items[].patientName.firstName`** (`string`): The patient's first name. - **`items[].patientName.lastName`** (`string`): The patient's last name. - **`items[].patientName.middleName`** (`string`): The patient's middle name. - **`items[].patientName.suffix`** (`string`): The patient's name suffix. - **`items[].status`** (`string`) (required): The claim's current processing status. - `SUBMITTED`: You submitted the claim to Stedi but haven't yet received a 277CA response from Stedi or the payer. - `RECEIVED`: The clearinghouse or payer has acknowledged receipt of the claim. This doesn't mean the claim has been accepted for adjudication. - `ACCEPTED`: The payer has accepted the claim into their adjudication system and it's currently being processed or adjudicated. - `REJECTED`: Either Stedi or the payer rejected the claim before the start of adjudication. This can happen even when the payer has acknowledged receipt. - `PROCESSED`: The payer has adjudicated the claim. Check `totalClaimPaidAmount` to see how much was paid. - `DENIED`: The payer has denied the claim. - `UNKNOWN`: Stedi can't determine a single status for this claim, usually because the payer's responses are mixed or incomplete. - Allowed values: `SUBMITTED`, `RECEIVED`, `ACCEPTED`, `REJECTED`, `PROCESSED`, `DENIED`, `UNKNOWN` - **`items[].statusReportedBy`** (`string`) (required): The entity that reported a claim status. - `PAYER`: The payer reported the status, in a 277CA claim acknowledgment or an 835 ERA. - `CLEARINGHOUSE`: A clearinghouse reported the status, either Stedi or an intermediary clearinghouse between Stedi and the payer. - Allowed values: `PAYER`, `CLEARINGHOUSE` - **`items[].stediPayerId`** (`string`): The payer identifier in Stedi's system. This is the Stedi payer ID listed in the Stedi [Payer Network](https://www.stedi.com/healthcare/network). - **`items[].submittedAt`** (`string`) (required): The time Stedi processed the claim's most recent submission. - **`items[].totalClaimChargeAmount`** (`string`) (required): The total charge amount of the claim's most recent submission. - **`items[].totalClaimPaidAmount`** (`string`): The total amount payers have paid on this claim, summed across every claim payment information record linked to it. Excludes claim payment information with the `PREDETERMINATION_PRICING_ONLY` status, where the payer priced the claim without paying it. Reversals carry a negative amount, so they subtract from the total. Absent until Stedi receives an 835 ERA for the claim. - **`items[].type`** (`string`) (required): The type of claim. Each type corresponds to a different 837 transaction set and paper claim form. - `DENTAL`: An 837D dental claim, the electronic equivalent of the ADA Dental Claim Form. - `INSTITUTIONAL`: An 837I institutional claim, the electronic equivalent of the UB-04 form. - `PROFESSIONAL`: An 837P professional claim, the electronic equivalent of the CMS-1500 form. - Allowed values: `DENTAL`, `INSTITUTIONAL`, `PROFESSIONAL` - **`nextPageToken`** (`string`): Token you can supply in subsequent requests to retrieve the next page of results. If absent, there are no more results. **Example:** ```json { "items": [ { "datesOfService": { "start": "2026-01-05" }, "id": "clm_01K6XFP3TZ8RA9X84963NMW40N", "patientControlNumber": "123456", "patientName": { "firstName": "John", "lastName": "Doe", "middleName": "Michael", "suffix": "Jr" }, "status": "PROCESSED", "statusReportedBy": "PAYER", "stediPayerId": "ABCDE", "submittedAt": "2026-01-16T10:00:00Z", "totalClaimChargeAmount": "832.00", "totalClaimPaidAmount": "200.00", "type": "PROFESSIONAL" }, { "id": "clm_01K6XFP3TZ8RA9X84963NMW41P", "patientControlNumber": "123457", "patientName": { "firstName": "Jane", "lastName": "Doe" }, "status": "SUBMITTED", "statusReportedBy": "CLEARINGHOUSE", "stediPayerId": "ABCDE", "submittedAt": "2026-01-06T10:00:00Z", "totalClaimChargeAmount": "125.00", "type": "PROFESSIONAL" } ], "nextPageToken": "eyJsYXN0SWQiOiIwMUs2WEZQMyJ9" } ``` #### 400 ListClaims400Error 400 response **Schema:** `ListClaims400ErrorResponseContent` #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ListClaims403Error 403 response **Schema:** `ListClaims403ErrorResponseContent` #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of resource not found error. - **`message`** (`string`) (required): Human readable error message explaining why the resource could not be found. #### 429 ListClaims429Error 429 response **Schema:** `ListClaims429ErrorResponseContent` #### 500 ListClaims500Error 500 response **Schema:** `ListClaims500ErrorResponseContent` # Eligibility mock requests Source: https://www.stedi.com/docs/healthcare/api-reference/mock-requests-eligibility-checks Send mock eligibility checks in test mode to get realistic, PHI-free responses for specific payers in JSON, Raw X12, SOAP, or the Stedi portal. When you submit the following requests with a [test API key](/healthcare/api-reference#api-key-types), Stedi returns mock benefits data from the specified payer you can use for testing. Each example includes request formats for Stedi's JSON, Raw X12, and SOAP endpoints. You can also submit most of these mock requests through the [eligibility check form](https://portal.stedi.com/app/healthcare/checks/create) in the UI when you enable **Test mode**. Mock requests are free for testing purposes and won't incur any charges in your Stedi account. ## Test API key [#test-api-key] When submitting these mock requests to the API, you must use a test API key for authentication. To create a test API key: 1. Go to the [API keys page](https://portal.stedi.com/app/settings/developer/api-keys) in developer settings. 2. Click **Generate new API Key**. 3. Enter a name for your API key. We recommend using a unique name and adding a `test` or `production` prefix to indicate the key type. 4. Select **Test** as the **Mode**. 5. Click **Generate**. Stedi generates an API key and lets you copy it. When using a test API key, you can only send the following mock requests to the endpoint. Stedi returns an error if you try to send production data with a test API key. ## API clients [#api-clients] You may want to use an API client to make testing and debugging easier. We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead. ## Eligibility check examples [#eligibility-check-examples] The following examples work with all eligibility check endpoints. Each accordion contains tabs with request formats for: - **JSON** - [Real-Time Eligibility Check](/healthcare/api-reference/post-healthcare-eligibility-legacy) endpoint - **Raw X12** - [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12) endpoint - **SOAP** - [CAQH CORE SOAP](/healthcare/api-reference/post-healthcare-eligibility-soap) endpoint ### Medical - Active coverage [#medical---active-coverage] Request notes: - `encounter`: Only service type code `30` is supported. - `provider`: You can use any organization name and any NPI, as long as it passes [check digit validation](https://www.cms.gov/Regulations-and-Guidance/Administrative-Simplification/NationalProvIdentStand/Downloads/NPIcheckdigit.pdf). To generate a dummy NPI, you can use [this free tool](https://jsfiddle.net/alexdresko/cLNB6). - `subscriber`: You must use the exact values in the test request. Other birth dates, first names, last names, member IDs, and Social Security Numbers return errors. #### Dependent [#dependent] Each of these examples represent an eligibility check for a dependent. An individual qualifies as a dependent for eligibility checks when they are listed as a dependent on the subscriber's insurance plan AND the payer cannot uniquely identify them through information outside the subscriber's policy. These example requests follow best practices for structuring eligibility checks. Specifically, all requests include the dependent's information, including their date of birth, in the `dependent` object. Some payers may allow different structures, such as sending the dependent's information in the `subscriber` object with the subscriber's member ID. However, we recommend following the guidance outlined in the [Real-Time Eligibility Check](/healthcare/api-reference/post-eligibility-check#body.dependent) endpoint documentation for the most reliable results across all payers. The way dependent information is included in the response varies by payer. Some contain the dependent's information in the `subscriber` object. Some include the actual subscriber's information in the `subscriber` object and the dependent's information in the `dependent` object. **Aetna** In this example, the dependent Jordan is the subscriber John's child. The response contains Jordan's information in the `dependent` object. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Aetna curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "60054", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "AETNA9wcSu" }, "dependent": { "name": { "person": { "firstName": "Jordan", "lastName": "Doe" } }, "dateOfBirth": "2001-07-14" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Aetna curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Aetna*****PI*60054~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*AETNA9wcSu~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jordan~DMG*D8*20010714~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Aetna curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Aetna*****PI*60054~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*AETNA9wcSu~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jordan~DMG*D8*20010714~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Anthem Blue Cross Blue Shield of CA** In this example, the dependent John is the subscriber Jane's spouse. The response contains John's information in the `dependent` object. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Anthem BCBSCA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "040", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "CGMBCBSCA123" }, "dependent": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "dateOfBirth": "1975-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Anthem BCBSCA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Anthem Blue Cross Blue Shield of California*****PI*040~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*Jane****MI*CGMBCBSCA123~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*John~DMG*D8*19750101~DTP*291*D8*20260420~EQ*30~SE*15*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Anthem BCBSCA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Anthem Blue Cross Blue Shield of California*****PI*040~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*Jane****MI*CGMBCBSCA123~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*John~DMG*D8*19750101~DTP*291*D8*20260420~EQ*30~SE*15*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Blue Cross and Blue Shield of Texas** In this example, the dependent Jane is the subscriber John's child. The response contains Jane's information in the `dependent` object. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for BCBSTX curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "G84980", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "A2CBCBSTX123" }, "dependent": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "dateOfBirth": "2015-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for BCBSTX curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Blue Cross and Blue Shield of Texas*****PI*G84980~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*A2CBCBSTX123~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*20150101~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for BCBSTX curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Blue Cross and Blue Shield of Texas*****PI*G84980~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*A2CBCBSTX123~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*20150101~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Cigna** In this example, the dependent Jordan is the subscriber's child. The response contains Jordan in the `subscriber` object with no `dependent` object, even though they are a dependent. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Cigna curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "CIGNAJTUxNm" }, "dependent": { "name": { "person": { "firstName": "Jordan", "lastName": "Doe" } }, "dateOfBirth": "2015-09-20" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Cigna curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*CIGNAJTUxNm~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jordan~DMG*D8*20150920~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Cigna curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*CIGNAJTUxNm~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jordan~DMG*D8*20150920~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Oscar Health** In this example, the dependent Jane is the subscriber John's child. The response contains Jane's information in the `dependent` object. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Oscar Health curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "OSCAR", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "OSCAR123456" }, "dependent": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "dateOfBirth": "2001-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Oscar Health curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Oscar Health*****PI*OSCAR~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*OSCAR123456~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*20010101~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Oscar Health curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Oscar Health*****PI*OSCAR~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*OSCAR123456~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*20010101~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **UnitedHealthcare** In this example, the dependent Jane is the subscriber John's spouse. The response contains Jane's information in the `dependent` object. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for UnitedHealthcare curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "UHC202649" }, "dependent": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "dateOfBirth": "1952-11-21" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for UnitedHealthcare curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*UHC202649~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*19521121~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for UnitedHealthcare curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*UHC202649~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*19521121~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~]]> ' ``` #### Subscriber only [#subscriber-only] The following examples request benefits information for the subscriber only. The subscriber's information is sent in the `subscriber` object in the request. The payer's response contains the subscriber's information in the `subscriber` object and doesn't include any dependent information. **Aetna** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Aetna curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "60054", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "AETNA12345", "dateOfBirth": "2004-04-04" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Aetna curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Aetna*****PI*60054~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*AETNA12345~DMG*D8*20040404~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Aetna curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Aetna*****PI*60054~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*AETNA12345~DMG*D8*20040404~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Ambetter** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Ambetter curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "68069", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "AMBETTER123", "dateOfBirth": "1994-04-04" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Ambetter curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Centene (Medical)*****PI*68069~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*AMBETTER123~DMG*D8*19940404~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Ambetter curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Centene (Medical)*****PI*68069~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*AMBETTER123~DMG*D8*19940404~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Cigna** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "James", "lastName": "Jones" } }, "dateOfBirth": "1991-02-02", "memberId": "23456789100" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Jones*James****MI*23456789100~DMG*D8*19910202~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Jones*James****MI*23456789100~DMG*D8*19910202~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Rolando", "lastName": "Arrojo" } }, "memberId": "5643296", "dateOfBirth": "1971-01-02" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Arrojo*Rolando****MI*5643296~DMG*D8*19710102~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Arrojo*Rolando****MI*5643296~DMG*D8*19710102~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Rod", "lastName": "Beck" } }, "memberId": "R5TJR4HR4H", "dateOfBirth": "1972-02-03" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Beck*Rod****MI*R5TJR4HR4H~DMG*D8*19720203~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Beck*Rod****MI*R5TJR4HR4H~DMG*D8*19720203~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "David", "lastName": "Cone" } }, "memberId": "5642296", "dateOfBirth": "1973-03-04" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Cone*David****MI*5642296~DMG*D8*19730304~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Cone*David****MI*5642296~DMG*D8*19730304~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Frank", "lastName": "Castillo" } }, "memberId": "FTRJRG3254", "dateOfBirth": "1975-04-05" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Castillo*Frank****MI*FTRJRG3254~DMG*D8*19750405~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Castillo*Frank****MI*FTRJRG3254~DMG*D8*19750405~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Casey", "lastName": "Fossum" } }, "memberId": "5641296", "dateOfBirth": "1976-05-06" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Fossum*Casey****MI*5641296~DMG*D8*19760506~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Fossum*Casey****MI*5641296~DMG*D8*19760506~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Rich", "lastName": "Garces" } }, "memberId": "DHW5445", "dateOfBirth": "1977-06-07" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Garces*Rich****MI*DHW5445~DMG*D8*19770607~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CIGNA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Garces*Rich****MI*DHW5445~DMG*D8*19770607~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Humana** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Humana curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "61101", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "HUMANA123", "dateOfBirth": "1975-05-05" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Humana curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Humana*****PI*61101~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*HUMANA123~DMG*D8*19750505~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Humana curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Humana*****PI*61101~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*HUMANA123~DMG*D8*19750505~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Kaiser Permanente Northern California** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Kaiser Permanente curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "KSRCN", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "KAISER123456", "dateOfBirth": "2002-02-02" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for Kaiser Permanente curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Kaiser Foundation Health Plan Northern California*****PI*KSRCN~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*KAISER123456~DMG*D8*20020202~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Kaiser Permanente curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Kaiser Foundation Health Plan Northern California*****PI*KSRCN~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*KAISER123456~DMG*D8*20020202~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **National Centers for Medicare & Medicaid Services (CMS)** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CMS curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "CMS", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "1AA2CC3DD45", "dateOfBirth": "1955-05-05" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CMS curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20260420*1841~HL*1**20*1~NM1*PR*2*CMS*****PI*CMS~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*1AA2CC3DD45~DMG*D8*19550505~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CMS curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20260420*1841~HL*1**20*1~NM1*PR*2*CMS*****PI*CMS~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*1AA2CC3DD45~DMG*D8*19550505~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **UnitedHealthcare** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "UHC123456", "dateOfBirth": "1971-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHC123456~DMG*D8*19710101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHC123456~DMG*D8*19710101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` #### MBI lookup for CMS checks [#mbi-lookup-for-cms-checks] You must include the patient's Medicare Beneficiary Identifier (MBI) in every eligibility check you submit to the Centers for Medicare and Medicaid Services ([Payer ID: CMS](https://www.stedi.com/healthcare/network/cms)). When patients don't know their MBI, you can use Stedi's eligibility APIs to perform an MBI lookup. This mock request is for an MBI lookup with the patient's Social Security Number (SSN), but you can also perform an MBI lookup without an SSN. Visit [MBI lookup](/healthcare/mbi-lookup) for more information. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CMS MBI Lookup curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key ' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "MBILU", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "lastName": "Doe" } }, "dateOfBirth": "1955-05-05", "additionalInformation": { "ssn": "123456789" } }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CMS MBI Lookup curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key ' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*CMS MBI Lookup*****PI*MBILU~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*****MI*123456789~REF*SY*123456789~DMG*D8*19550505~EQ*30~SE*13*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CMS MBI Lookup curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*CMS MBI Lookup*****PI*MBILU~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*****MI*123456789~REF*SY*123456789~DMG*D8*19550505~EQ*30~SE*13*0001~GE*1*1~IEA*1*000000001~]]> ' ``` ### Medical - Inactive coverage [#medical---inactive-coverage] The following example requests benefits information for the subscriber. **UnitedHealthcare** {/* schema:CreateEligibilityCheckRequestContent */} ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "UHCINACTIVE", "dateOfBirth": "1971-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCINACTIVE~DMG*D8*19710101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCINACTIVE~DMG*D8*19710101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` ### Dental [#dental] The following example requests benefits information for the subscriber. Request notes: - `encounter`: Only service type code `35` is supported. - `provider`: You can use any organization name and any NPI, as long as it passes [check digit validation](https://www.cms.gov/Regulations-and-Guidance/Administrative-Simplification/NationalProvIdentStand/Downloads/NPIcheckdigit.pdf). To generate a dummy NPI, you can use [this free tool](https://jsfiddle.net/alexdresko/cLNB6). - `subscriber`: You must use the exact values in the test request. Other birthdates, first names, last names, and member IDs return errors. **Ameritas** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Ameritas curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "AMTAS00425", "provider": { "name": { "person": { "firstName": "Plaque", "lastName": "Penguin" } }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Falcon", "lastName": "Dent" } }, "memberId": "007007007", "dateOfBirth": "1985-06-07" }, "encounter": { "services": [ { "value": "35", "system": "STC" } ] } }' ``` ```bash test request for Ameritas curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Ameritas*****PI*AMTAS00425~HL*2*1*21*1~NM1*1P*1*Penguin*Plaque****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Falcon****MI*007007007~DMG*D8*19850607~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Ameritas curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Ameritas*****PI*AMTAS00425~HL*2*1*21*1~NM1*1P*1*Penguin*Plaque****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Falcon****MI*007007007~DMG*D8*19850607~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Anthem Blue Cross Blue Shield of CA** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for BCBSCA curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "84103", "provider": { "name": { "organization": "One" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Aardvark", "lastName": "Dent" } }, "memberId": "AFK987654321", "dateOfBirth": "1970-12-12" }, "encounter": { "services": [ { "value": "35", "system": "STC" } ] } }' ``` ```bash test request for BCBSCA curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Anthem Blue Cross Blue Shield of California*****PI*84103~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Aardvark****MI*AFK987654321~DMG*D8*19701212~DTP*291*D8*20260420~EQ*35~SE*13*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for BCBSCA curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Anthem Blue Cross Blue Shield of California*****PI*84103~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Aardvark****MI*AFK987654321~DMG*D8*19701212~DTP*291*D8*20260420~EQ*35~SE*13*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Cigna** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Cigna curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "One" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jaguar", "lastName": "Dent" } }, "memberId": "U3141592653", "dateOfBirth": "1996-05-05" }, "encounter": { "services": [ { "value": "35", "system": "STC" } ] } }' ``` ```bash test request for Cigna curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Jaguar****MI*U3141592653~DMG*D8*19960505~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Cigna curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Jaguar****MI*U3141592653~DMG*D8*19960505~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Cigna (with procedure code)** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Cigna with procedure code curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "62308", "provider": { "name": { "organization": "Smith Associates" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "James", "lastName": "Doe" } }, "memberId": "U9876543210", "dateOfBirth": "1901-01-01" }, "encounter": { "services": [ { "value": "35", "system": "STC" }, { "value": "24", "system": "STC" }, { "value": "28", "system": "STC" }, { "value": "41", "system": "STC" }, { "value": "23", "system": "STC" }, { "value": "36", "system": "STC" }, { "value": "37", "system": "STC" }, { "value": "25", "system": "STC" }, { "value": "40", "system": "STC" }, { "value": "27", "system": "STC" }, { "value": "39", "system": "STC" }, { "value": "38", "system": "STC" }, { "value": "26", "system": "STC" }, { "value": "D4341", "system": "CDT" } ], "dates": { "service": { "start": "2026-04-01" } } } }' ``` ```bash test request for Cigna with procedure code curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Smith Associates*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*James****MI*U9876543210~DMG*D8*19010101~DTP*291*D8*20260401~EQ*35~EQ*24~EQ*28~EQ*41~EQ*23~EQ*36~EQ*37~EQ*25~EQ*40~EQ*27~EQ*39~EQ*38~EQ*26*AD>D4341~SE*25*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Cigna with procedure code curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*Cigna*****PI*62308~HL*2*1*21*1~NM1*1P*2*Smith Associates*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*James****MI*U9876543210~DMG*D8*19010101~DTP*291*D8*20260401~EQ*35~EQ*24~EQ*28~EQ*41~EQ*23~EQ*36~EQ*37~EQ*25~EQ*40~EQ*27~EQ*39~EQ*38~EQ*26*AD>D4341~SE*25*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **Metlife** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for Metlife curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "10134", "provider": { "name": { "organization": "One" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Elephant", "lastName": "Dent" } }, "memberId": "88877788", "dateOfBirth": "1984-02-29" }, "encounter": { "services": [ { "value": "35", "system": "STC" } ] } }' ``` ```bash test request for Metlife curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*MetLife Dental Family*****PI*10134~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Elephant****MI*88877788~DMG*D8*19840229~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for Metlife curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*MetLife Dental Family*****PI*10134~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Elephant****MI*88877788~DMG*D8*19840229~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` **UnitedHealthcare** {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for UnitedHealthcare curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "52133", "provider": { "name": { "organization": "One" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Beaver", "lastName": "Dent" } }, "memberId": "404404404", "dateOfBirth": "1969-06-28" }, "encounter": { "services": [ { "value": "35", "system": "STC" } ] } }' ``` ```bash test request for UnitedHealthcare curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare Dental*****PI*52133~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Beaver****MI*404404404~DMG*D8*19690628~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for UnitedHealthcare curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare Dental*****PI*52133~HL*2*1*21*1~NM1*1P*2*One*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Dent*Beaver****MI*404404404~DMG*D8*19690628~EQ*35~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` ### Common AAA errors [#common-aaa-errors] The following requests return mock data for the most common Payer `AAA` errors. Visit [Eligibility troubleshooting](/healthcare/eligibility-troubleshooting) for a complete list of AAA error codes, other common eligibility check issues, and recommended resolution steps. #### 42 - Unable to respond at current time [#42---unable-to-respond-at-current-time] The following example request returns a `42` AAA error code, indicating that the payer is unable to respond at the current time. This is typically a temporary issue with the payer's system, but it can also be an extended outage or the payer throttling your requests. {/* schema:CreateEligibilityCheckRequestContent */} ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Medical Provider" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "UHCAAA42", "dateOfBirth": "2001-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCAAA42~DMG*D8*20010101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCAAA42~DMG*D8*20010101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` #### 43 - Invalid/Missing Provider Identification [#43---invalidmissing-provider-identification] The following example request returns a `43` AAA error code. This error can occur if provider's NPI is not registered with the payer, the provider's NPI is not registered _correctly_ with the payer, or the payer requires an agreement. {/* schema:CreateEligibilityCheckRequestContent */} ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Medical Provider" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "UHCAAA43", "dateOfBirth": "1970-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCAAA43~DMG*D8*19700101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCAAA43~DMG*D8*19700101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` #### 72 - Invalid/Missing Subscriber/Insured ID [#72---invalidmissing-subscriberinsured-id] The following example request returns a `72` AAA error code. This error can occur if the subscriber member ID was incorrect in the request, the request does not meet the payer's requirements for the subscriber ID, or there is another unidentified error in the request data. {/* schema:CreateEligibilityCheckRequestContent */} ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Medical Provider" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "UHCAAA72", "dateOfBirth": "1990-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*UHCAAA72~DMG*D8*19900101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*UHCAAA72~DMG*D8*19900101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` #### 73 - Invalid/Missing Subscriber/Insured Name [#73---invalidmissing-subscriberinsured-name] The following example request returns a `73` AAA error code. This error can occur if an incorrect subscriber name was submitted, the subscriber name was missing, the subscriber name was spelled incorrectly, or the request doesn't meet the payer's requirements for the subscriber's name. {/* schema:CreateEligibilityCheckRequestContent */} ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Medical Provider" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "UHCAAA73", "dateOfBirth": "1990-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*UHCAAA73~DMG*D8*19900101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*UHCAAA73~DMG*D8*19900101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` #### 75 - Subscriber/Insured Not Found [#75---subscriberinsured-not-found] The following example request returns a `75` AAA error code. This error occurs when the payer can't find the subscriber in their database. You should verify the subscriber details and try sending different combinations of `firstName`, `lastName`, `dateOfBirth`, and `memberId`. Note that not all search combinations are supported by all payers. {/* schema:CreateEligibilityCheckRequestContent */} ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Medical Provider" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "memberId": "UHCAAA75", "dateOfBirth": "1990-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCAAA75~DMG*D8*19900101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*Jane****MI*UHCAAA75~DMG*D8*19900101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` #### 79 - Invalid Participant Identification [#79---invalid-participant-identification] The following example request returns a `79` AAA error code. This error occurs when there is a problem connecting with the payer. You should contact Stedi support for assistance. {/* schema:CreateEligibilityCheckRequestContent */} ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "87726", "provider": { "name": { "organization": "Medical Provider" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "UHCAAA79", "dateOfBirth": "1970-01-01" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*UHCAAA79~DMG*D8*19700101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash request for UHC curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Medical Provider*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*John****MI*UHCAAA79~DMG*D8*19700101~EQ*30~SE*12*0001~GE*1*1~IEA*1*000000001~]]> ' ``` # Coordination of Benefits Check Source: https://www.stedi.com/docs/healthcare/api-reference/post-coordination-of-benefits Coordination of benefits (COB) checks help you determine whether patients are covered by multiple health plans, whether coverage overlap requires coordination of benefits, and each payer's responsibility for payment (primacy). 1. Call this endpoint with a JSON payload. Each check **must** be for a Stedi-supported payer with which the patient has coverage. Visit the [Payer Network](https://www.stedi.com/healthcare/network?filter=eyJ0cmFuc2FjdGlvblR5cGVzIjpbIkNPQiJdLCJjb3ZlcmFnZVR5cGVzIjpbXSwib3BlcmF0aW5nU3RhdGVzIjpbXSwicHJvZ3JhbXMiOltdfQ%3D%3D) for a complete list of supported payers. 2. Stedi searches a national database containing 245+ million patient coverage records from 45+ health plans, ASOs, TPAs, and others, including participation from the vast majority of national commercial health plans. Data is updated weekly to ensure accuracy. 3. The endpoint returns information about the patient's active health plans, the responsibility sequence number for each payer if available (such as primary or secondary), and whether coordination of benefits is required. ## API Specification Submit a coordination of benefits (COB) check in JSON format **Endpoint:** `POST /coordination-of-benefits` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Request Body **Schema:** `CoordinationOfBenefitsRequestContent` **Properties:** - **`dependent`** (`object`): A dependent for which you want to check coordination of benefits. - An individual qualifies as a dependent when they are listed as a dependent on the subscriber's insurance plan AND the payer cannot uniquely identify them through information outside the subscriber's policy. For example, if the dependent has their own member ID number, you should identify them in the `subscriber` object instead. - The demographic information you provide **must** patch the payer's data exactly. For example, if the payer has the dependent's name as `Jonathan Doe`, a COB request for `Jon Doe` will fail because the name doesn't match the payer's records. - **`dependent.dateOfBirth`** (`string`) (required): The dependent's date of birth. - **`dependent.firstName`** (`string`) (required): The dependent's first name. - **`dependent.lastName`** (`string`) (required): The dependent's last name. - **`dependent.ssn`** (`string`): The dependent's Social Security Number (SSN). - **`encounter`** (`object`) (required): Information about the encounter. - You can submit COB checks with the `30` service type code for Health Benefit Plan Coverage. This is the broadest service type code that covers all medical services and subtypes included in the patient’s health plan. - The service dates you provide **must** be within the past 2 years. COB checks don't support requests with dates outside of this range. - Don't send service dates that are in the future. Future service dates typically result in errors from the payer. - If you don't specify a service date (either a single day or a range of dates), Stedi defaults to using the current date. - **`encounter.beginningDateOfService`** (`string`): The beginning date of service. If you include this value, you must also include the `endDateOfService`. - **`encounter.dateOfService`** (`string`): The date of service of the encounter. - **`encounter.endDateOfService`** (`string`): The end date of service. If you include this value, you must also include the `beginningDateOfService`. - **`encounter.serviceTypeCode`** (`string`): The service type code for the encounter. If not provided, the default value is `30`. - Allowed values: `30` - **`provider`** (`object`) (required): Information about the entity requesting the coverage. - **`provider.firstName`** (`string`): The provider's first name. This property is required if the provider is an individual. - **`provider.lastName`** (`string`): The provider's last name. This property is required if the provider is an individual. - **`provider.npi`** (`string`) (required): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`provider.organizationName`** (`string`): The provider's business name. - **`subscriber`** (`object`) (required): The primary policyholder for the insurance plan _or_ a dependent with a unique member ID. If a dependent has a unique member ID, include their information here and leave `dependent` empty. The demographic information you provide **must** match the payer's data exactly. For example, if the payer has the subscriber's name as `Jonathan Doe`, a COB request for `Jon Doe` will fail because the name doesn't match the payer's records. Also note that: - Any prefix on the member's card is considered part of the `memberID` used for the search. - Mismatches in the `memberId` are one of the most common causes of `Member Not Found` errors. We strongly recommend first performing an [Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) and using the `memberId` in the response to populate your COB check. - We recommend including the `ssn` property in addition to the `memberId` if possible. This allows Stedi to do an additional search for the patient when the `memberId` doesn't return a match. - Stedi can identify coverage overlap for the same payer if the member ID differs between the two coverages. - **`subscriber.dateOfBirth`** (`string`) (required): The subscriber's date of birth. - **`subscriber.firstName`** (`string`) (required): The patient's first name. - **`subscriber.lastName`** (`string`) (required): The patient's last name. - **`subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. You must provide at least one of the `memberId` or `ssn` properties in the request. However, we recommend including both if possible. This allows Stedi to do an additional search for patient information when the `memberId` doesn't return a match. - **`subscriber.ssn`** (`string`): The subscriber's Social Security Number (SSN). You must provide at least one of the `memberId` or `ssn` properties in the request. However, we recommend including both if possible. This allows Stedi to do an additional search for patient information when the `memberId` doesn't return a match. - **`tradingPartnerServiceId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list of supported payers for COB checks. - Each check **must** be for a participating health plan for which the patient has coverage. For example, if the patient has coverage from Cigna and UnitedHealthcare, a COB check to Aetna returns an error. - Medicare plans aren't supported. If you submit a COB check for a Medicare plan, the request fails with an `AAA` = `75` error (Subscriber/Insured Not Found). Many Medicare Advantage plans are supported. - Ensure that you're sending the request to the correct payer entity. For example, Blue Cross Blue Shield (BCBS) has multiple entities that operate in different states. If you send a request to the wrong entity, the request fails with an `AAA` = `75` error (Subscriber/Insured Not Found). - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. **Example:** ```json { "dependent": { "dateOfBirth": "2002-12-31", "firstName": "Jordan", "lastName": "Doe" }, "encounter": { "dateOfService": "2024-08-02", "serviceTypeCode": "30" }, "provider": { "npi": "1999999984", "organizationName": "ACME Health Services" }, "subscriber": { "dateOfBirth": "1985-05-27", "firstName": "John", "lastName": "Doe", "memberId": "W000000000" }, "tradingPartnerServiceId": "SOMEID" } ``` ### Responses #### 200 CoordinationOfBenefits 200 response **Schema:** `CoordinationOfBenefitsResponseContent` **Properties:** - **`benefitsInformation`** (`array of COBBenefitsInformation objects`): Information about the patient's healthcare benefits, including: - Active coverage with the health plan identified in the COB request - Coverage overlap (if it exists) with one or more payers - Payer primacy details (if Stedi was able to determine) - Benefits details, such as coverage dates and service types - **`benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. Dates listed only apply to the `benefitsInformation` object in which this benefitsDateInformation is provided. - **`benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date the benefits begin. - **`benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date the benefits end. - **`benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): Date or date range used for coordination of benefits instance. - **`benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of the coverage overlap. Included when Stedi finds an instance of coverage overlap. - **`benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of the coverage overlap Included when Stedi finds an instance of coverage overlap. - **`benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Coverage start date. If multiple coverage start dates exist due to different start dates on various coverage/service types, this date applies to the medical coverage. - **`benefitsInformation[].benefitsRelatedEntities`** (`array of COBBenefitsRelatedEntity objects`): Contains either information about another payer with which the patient has coverage or information about the subscriber associated with the additional health plan. For example, if you submit a COB check for a dependent to Cigna and Stedi finds additional coverage through Aetna, the `benefitsInformation[].benefitsRelatedEntities` instance would include subscriber details for the Aetna plan. - **`benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The entity's first name, when the entity is a subscriber. - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of `entityIdentificationValue`. - Allowed values: `MI`, `PI` - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. The ID returned in this property is proprietary to our COB check product, so you can't use it as the Payer ID for eligibility checks or other API requests to Stedi. It likely doesn't match the Payer IDs listed in the [Payer Network](https://www.stedi.com/healthcare/network). - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Identifies the type of `benefitsInformation[].benefitsRelatedEntities`. - Allowed values: `Insured or Subscriber`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer` - **`benefitsInformation[].benefitsRelatedEntities[].entityLastname`** (`string`): The entity's last name, when the entity is a subscriber. - **`benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The entity's middle name or initial, when the entity is a subscriber. - **`benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The payer's business name, when the entity is a payer. - **`benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Can be `1` - Active Coverage, `6` - Inactive, `R` - Other or Additional Payor, or `V` - Cannot Process. - Allowed values: `1`, `6`, `R`, `V` - **`benefitsInformation[].name`** (`string`): The full name of the benefits information code. - Allowed values: `Active Coverage`, `Inactive`, `Other or Additional Payor`, `Cannot Process` - **`benefitsInformation[].serviceTypeCodes`** (`array of strings`): Code identifying the type of services. - **`benefitsInformation[].serviceTypes`** (`array of strings`): The full names of the service type codes. - **`benefitsInformation[].subscriber`** (`object`) - **`benefitsInformation[].subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`coordinationOfBenefits`** (`object`) - **`coordinationOfBenefits.benefitOverlap`** (`boolean`): If set to `true`, the COB response contains benefits overlap. A benefits overlap indicates that the patient has active coverage from two or more payers for the same service type code, including the subtypes of medical coverage. - **`coordinationOfBenefits.classification`** (`string`): The classification for the benefits that have been discovered in the COB response. Stedi returns one of the following values: - `CobInstanceExistsPrimacyDetermined`: COB Instance Exists and Primacy was determined - `CobInstanceExistsPrimacyUndetermined`: COB Instance Exists and Primacy was NOT determined - `CoverageOverlapNoBenefitOverlap`: Coverage Overlap detected with no Benefit Overlap - `CoverageOverlapExistsNotSubjectToCob`: Coverage Overlap exists and is not subject to COB - `MemberFoundNoCob`: Member found, no COB found - **`coordinationOfBenefits.coverageOverlap`** (`boolean`): If set to `true`, the COB response contains a coverage overlap, meaning that the patient has active coverage with two or more payers during the service date submitted in the COB request. - Coverage overlap can be for coverages from the same payer if the member ID is different between the two coverages. - A coverage overlap is necessary for a COB instance to exist. - A coverage overlap can exist without there being a COB instance if either of the two coverages is not subject to COB for any reason. - **`coordinationOfBenefits.instanceExists`** (`boolean`): If set to `true`, the COB response contains at least one coordination of benefits instance. - **`coordinationOfBenefits.primacyDetermined`** (`boolean`): If set to `true`, Stedi was able to determine the primary payer for the patient. If Stedi was unable to determine the primary payer, you must contact the payers directly to determine primacy. - **`dependent`** (`object`): Information about the dependent listed in the original COB request. - **`dependent.aaaErrors`** (`array of EligibilityCheckError objects`): When a COB request fails, the response contains one or more `AAA` errors that specify the reasons for the rejection and any recommended follow-up actions. - **`dependent.aaaErrors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`dependent.aaaErrors[].description`** (`string`): The error description. - **`dependent.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`dependent.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`dependent.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`dependent.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`dependent.address`** (`object`) - **`dependent.address.address1`** (`string`): The first line of the address. - **`dependent.address.address2`** (`string`): The second line of the address. - **`dependent.address.city`** (`string`): The city. - **`dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependent.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`dependent.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`dependent.dateOfBirth`** (`string`): The dependent's date of birth. - **`dependent.firstName`** (`string`): The dependent's first name. - **`dependent.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`dependent.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`dependent.lastName`** (`string`): The dependent's last name. - **`dependent.memberId`** (`string`): The member ID for the subscriber's insurance policy. - **`dependent.middleName`** (`string`): The dependent's middle name or initial. - **`dependent.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`dependent.relationToSubscriberCode`** (`string`): The code indicating the dependent's relationship to the subscriber. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8` - **`dependent.ssn`** (`string`): The dependent's Social Security Number (SSN). - **`errors`** (`array of EligibilityCheckError objects`): If the COB request fails, the COB response contains one or more `AAA` errors that specify the reasons for the rejection and any recommended follow-up actions. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`meta`** (`object`) - **`meta.applicationMode`** (`string`): The type of data in the request. Stedi uses `production` to identify transactions processed in our live clearinghouse environment. - **`meta.outboundTraceId`** (`string`): The value provided in the `submitterTransactionIdentifier` property in the original COB request. - **`meta.traceId`** (`string`): A unique ID Stedi assigns to the COB request. - **`payer`** (`object`) - **`payer.name`** (`string`): The payer's name, such as `CIGNA`. - **`payer.payerIdentification`** (`string`): The identifier the payer returns in the response, which may differ from the `tradingPartnerServiceId` you sent. You can use `meta.traceId` to correlate a response to your request. - **`planDateInformation`** (`object`): Dates associated with the patient's health plan coverage. This information is used to determine their eligibility for benefits. - The provided dates apply to every benefit within the patient's health plan unless specifically noted within a `benefitsInformation[].benefitsDateInformation` object. - If the payer sends back date(s) that are different for the subscriber and dependents, Stedi includes only the dates for the dependent in this object and omits the subscriber's date(s). Dependents can have different coverage dates than the subscriber due to qualifying life events, such as starting a new job or passing the age limit for coverage through their parent's plan. - **`planDateInformation.planBegin`** (`string`): When the patient's health plan coverage begins. - **`planDateInformation.planEnd`** (`string`): When the patient's health plan coverage ends. - **`provider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. - **`provider.aaaErrors`** (`array of EligibilityCheckError objects`): When a COB request fails, the response contains one or more `AAA` errors that specify the reasons for the rejection and any recommended follow-up actions. - **`provider.aaaErrors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`provider.aaaErrors[].description`** (`string`): The error description. - **`provider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`provider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`provider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`provider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`provider.providerOrgName`** (`string`): The provider's organization name. - **`subscriber`** (`object`): Information about the primary policyholder for the insurance plan listed in the COB request. - **`subscriber.aaaErrors`** (`array of EligibilityCheckError objects`): When a payer rejects your request, the response contains one or more `AAA` errors that specify the reasons for the rejection and any recommended follow-up actions. - **`subscriber.aaaErrors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`subscriber.aaaErrors[].description`** (`string`): The error description. - **`subscriber.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`subscriber.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`subscriber.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`subscriber.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`subscriber.address`** (`object`) - **`subscriber.address.address1`** (`string`): The first line of the address. - **`subscriber.address.address2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. - **`subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`subscriber.firstName`** (`string`): The subscriber's first name. - **`subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`subscriber.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`subscriber.lastName`** (`string`): The subscriber's last name. - **`subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. - **`subscriber.middleName`** (`string`): The subscriber's middle name or initial. - **`subscriber.ssn`** (`string`): The subscriber's Social Security Number (SSN). **Example:** ```json { "benefitsInformation": [ { "benefitsDateInformation": { "benefitBegin": "2023-03-01" }, "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "1" ], "serviceTypes": [ "Medical Care" ], "subscriber": { "dateOfBirth": "2002-02-27" } }, { "benefitsDateInformation": { "benefitBegin": "2023-03-01" }, "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "88" ], "serviceTypes": [ "Pharmacy" ], "subscriber": { "dateOfBirth": "2002-02-27" } }, { "benefitsDateInformation": { "benefitBegin": "2023-03-01" }, "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "AL" ], "serviceTypes": [ "Vision (Optometry)" ], "subscriber": { "dateOfBirth": "2002-02-27" } }, { "benefitsDateInformation": { "coordinationOfBenefits": "2024-07-01" }, "benefitsRelatedEntities": [ { "entityIdentification": "PI", "entityIdentificationValue": "1006", "entityIdentifier": "Primary Payer", "entityName": "CIGNA" }, { "entityFirstname": "JOHN", "entityIdentification": "MI", "entityIdentificationValue": "00000000000", "entityIdentifier": "Insured or Subscriber", "entityLastname": "DOE", "entityMiddlename": "X" } ], "code": "R", "name": "Other or Additional Payor", "serviceTypeCodes": [ "1" ], "serviceTypes": [ "Medical Care" ], "subscriber": { "dateOfBirth": "2002-12-31" } } ], "coordinationOfBenefits": { "benefitOverlap": true, "classification": "CobInstanceExistsPrimacyDetermined", "coverageOverlap": true, "instanceExists": true, "primacyDetermined": true }, "dependent": { "address": { "address1": "1 MAIN ST.", "city": "NEW YORK", "postalCode": "10000", "state": "NY" }, "dateOfBirth": "2002-12-31", "firstName": "JORDAN", "gender": "M", "lastName": "DOE", "relationToSubscriber": "Child", "relationToSubscriberCode": "19" }, "errors": [], "meta": { "applicationMode": "production", "outboundTraceId": "01JDQFT4W3KTWZNTADEZ55BFFX", "traceId": "01JDQFT4W3KTWZNTADEZ55BFFX" }, "payer": { "name": "Aetna", "payerIdentification": "AETNA-USH" }, "provider": { "npi": "1999999984", "providerName": "ACME Health Services" }, "subscriber": { "address": { "address1": "1 MAIN ST.", "city": "NEW YORK", "postalCode": "10000", "state": "NY" }, "firstName": "JOHN", "lastName": "DOE", "memberId": "W000000000" } } ``` #### 400 CoordinationOfBenefits400Error 400 response **Schema:** `CoordinationOfBenefits400ErrorResponseContent` #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Create Professional Claim (CMS-1500) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/post-create-professional-claim-json Submit 837P professional claims to payers using a JSON request structure that follows the [CMS-1500 paper form](https://www.nucc.org/index.php/1500-claim-form-mainmenu-35) layout. This endpoint is especially useful if you want to build a CMS-1500 form interface in your application. It's also useful when you're building an integration using AI agents, which are likely familiar with the data fields and requirements of the CMS-1500 form. 1. Call this endpoint with a JSON payload. 2. Stedi runs our suite of [edits and repairs](/healthcare/claim-edits-and-repairs) on the claim data. On success, Stedi translates the request to the X12 837 EDI format and sends it to the payer. 3. The endpoint returns an HTTP `201` whether Stedi's edits pass or fail. Monitor the response shape for failures: - **Success:** The endpoint returns only a `claimId` and `submissionId` when the claim passes Stedi's edits. - **Failures:** The endpoint also returns an `errors` array when the claim fails one or more of Stedi's edits. Address all issues before resubmitting. When a claim fails edits, Stedi stores it with [status `REJECTED`](/healthcare/claims-view#claim-processing-status) and displays it on the [claims view](https://portal.stedi.com/app/healthcare/claims) in the Stedi portal. You can use the `submissionId` to retrieve the data with the [Retrieve Professional Claim JSON](/healthcare/api-reference/get-professional-claim-json) endpoint. This endpoint isn't compatible with webhooks (legacy), programmatic PDF download, or secondary and tertiary claims. Visit [Submit professional claims](/healthcare/submit-professional-claims#submit-professional-claims) for details. ## API Specification Submit a professional claim in JSON modeled after the CMS-1500 form structure **Endpoint:** `POST /professional-claim-submissions` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents you from sending duplicate claims due to network errors or other intermittent failures. If you reuse a key on a new request while Stedi is still processing the original, Stedi returns a `409 Conflict` error. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `CreateProfessionalClaimSubmissionRequestContent` **Properties:** - **`authorization`** (`object`) (required): Signature and assignment-of-benefits indicators for the claim. - **`authorization.insuredAuthorizesAssignment`** (`string`) (required): Whether the insured has authorized payment of benefits directly to the provider. - `YES`: The insured has authorized assignment of benefits. - `NO`: The insured has not authorized assignment of benefits. - `NOT_APPLICABLE`: Assignment of benefits does not apply, typically because there is no signature on file. - Allowed values: `NO`, `NOT_APPLICABLE`, `YES` - **`authorization.patientReleasesMedicalInfo`** (`string`) (required): Whether the provider has the patient's authorization to release medical information needed to process the claim. - `YES`: The provider has the patient's signed authorization to release medical information. - `INFORMED_CONSENT`: The provider has informed consent to release medical information, but the signed authorization has not been obtained. - Allowed values: `INFORMED_CONSENT`, `YES` - **`authorization.providerAcceptsAssignment`** (`string`) (required): Whether the billing provider agrees to be paid under the payer's terms. - `ASSIGNED`: The provider accepts assignment and agrees to accept the payer's payment as payment in full, minus any patient responsibility. - `NOT_ASSIGNED`: The provider does not accept assignment. The payer typically sends payment directly to the patient, who is then responsible for reimbursing the provider. - `CLINICAL_LAB_ONLY`: The provider accepts assignment for clinical laboratory services only. This is uncommon. - Allowed values: `ASSIGNED`, `CLINICAL_LAB_ONLY`, `NOT_ASSIGNED` - **`authorization.providerSignature`** (`string`) (required): Whether the provider has the rendering provider's signature on file. - `ON_FILE`: The provider has the rendering provider's signature on file. - `NOT_ON_FILE`: The provider does not have the rendering provider's signature on file. - Allowed values: `ON_FILE`, `NOT_ON_FILE` - **`billing`** (`object`) (required): Billing details for the claim, including the billing provider, service facility, tax identification, and charges. - **`billing.amountPaid`** (`string`): **[CMS-1500 Box 29]** The total amount the patient, or the patient's representative, has already paid toward services in this claim. This is the patient's payment only. Don't include amounts paid by other payers. - **`billing.billingProvider`** (`object`) (required): The person or organization that will receive payment for the claim from the payer. - **`billing.billingProvider.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`billing.billingProvider.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billing.billingProvider.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billing.billingProvider.address.city`** (`string`) (required): The city name. - **`billing.billingProvider.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`billing.billingProvider.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`billing.billingProvider.contact`** (`object`): A person or department to contact, with up to one phone number, email address, and fax number. Provide at least one way to reach the contact. - **`billing.billingProvider.contact.email`** (`string`): The contact's email address. - **`billing.billingProvider.contact.faxNumber`** (`string`): The contact's fax number. - **`billing.billingProvider.contact.name`** (`string`): The name of the contact person or department. When omitted, questions are directed to the entity itself. - **`billing.billingProvider.contact.phoneExtension`** (`string`): The extension for `phoneNumber`. - **`billing.billingProvider.contact.phoneNumber`** (`string`): The contact's phone number. - **`billing.billingProvider.identifiers`** (`object`): Identifiers for the billing provider. - **`billing.billingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 33b]** A commercial number assigned to the billing provider by the payer. Include only when the payer requires it in addition to the NPI, or when the provider has no NPI. - **`billing.billingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 33b]** A location number assigned to the billing provider by the payer. Include only when the payer requires it in addition to the NPI, or when the provider has no NPI. - **`billing.billingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 33a]** The billing provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). When the billing provider isn't assigned an NPI, supply `commercialNumber` or `locationNumber` instead. - **`billing.billingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 33b]** The billing provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`billing.billingProvider.identifiers.taxonomyCode`** (`string`): **[CMS-1500 Box 33b]** The billing provider's taxonomy code from the National Uniform Claim Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/), which identifies the provider's type and specialty. - **`billing.billingProvider.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`billing.billingProvider.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`billing.billingProvider.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`billing.billingProvider.name (variant 2).person.firstName`** (`string`): The person's first name. - **`billing.billingProvider.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`billing.billingProvider.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`billing.billingProvider.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`billing.patientControlNumber`** (`string`) (required): **[CMS-1500 Box 26]** The patient control number, a unique tracking ID you assign to the claim so you can correlate it with responses from the payer. The payer returns this ID in claim acknowledgments, Electronic Remittance Advice (ERAs), and claim status checks. We recommend using a random, 17-character alphanumeric string. - **`billing.serviceFacility`** (`object`): The facility where the patient received care, also called the service facility location. The address should be a physical location. - **`billing.serviceFacility.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`billing.serviceFacility.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billing.serviceFacility.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billing.serviceFacility.address.city`** (`string`) (required): The city name. - **`billing.serviceFacility.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`billing.serviceFacility.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`billing.serviceFacility.identifiers`** (`object`): Identifiers for the service facility. - **`billing.serviceFacility.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 32b]** A commercial number assigned to the facility by the payer. Include only when the payer requires it in addition to the NPI. - **`billing.serviceFacility.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 32b]** A location number assigned to the facility by the payer. Include only when the payer requires it in addition to the NPI. - **`billing.serviceFacility.identifiers.npi`** (`string`): **[CMS-1500 Box 32a]** The facility's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). Only required when the facility's NPI differs from the billing provider's NPI. Don't include when the service facility is the patient's home. - **`billing.serviceFacility.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 32b]** The facility's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`billing.serviceFacility.name`** (`any`) (required): A name that belongs to an organization. - **`billing.serviceFacility.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`billing.taxId`** (`any`) (required): The billing provider's federal tax identification number. Provide exactly one of `ein` or `ssn`. - **`billing.taxId (variant 1).ssn`** (`string`) (required): The billing provider's Social Security Number. Must be a string of exactly nine numbers with no separators. If you provide this, don't provide `ein`. - **`billing.taxId (variant 2).ein`** (`string`) (required): The billing provider's Employer Identification Number (EIN). Typically a string of exactly nine numbers with no separators, unless otherwise instructed by the payer. If you provide this, don't provide `ssn`. - **`billing.totalCharge`** (`string`) (required): **[CMS-1500 Box 28]** The total charge for the claim, equal to the sum of all service line charges. It is acceptable to set this to `0` (zero). - **`encounter`** (`object`) (required): Clinical details about the encounter, including diagnoses, related providers, relevant dates, and supporting information. - **`encounter.additionalDiagnosisCodes`** (`array of strings`): **[CMS-1500 Box 21]** Additional diagnoses for the claim beyond `primaryDiagnosisCode`, in order of importance. Use this for diagnoses that apply to the claim but are not tied to a specific service line; you don't need to repeat codes that already appear in a service line's `diagnosisCodes`. Stedi places these directly after the primary diagnosis in the claim's diagnosis list. - Use valid, billable codes at the highest level of specificity available. - Don't submit the decimal point (e.g., submit `I639` not `I63.9`). - Don't submit header codes (codes with fewer than three characters, such as `E10` for Type 1 diabetes). - **`encounter.attachments`** (`array of ProfessionalClaimSubmissionAttachment objects`): **[CMS-1500 Box 19]** Supporting documentation attached to the claim, such as medical records or operative notes. Include only when required by the payer. - **`encounter.attachments[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`encounter.attachments[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is required when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`encounter.attachments[].reportTypeCode`** (`string`) (required): The type of report being attached to the claim. Visit [Attachment report type codes](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of values and their descriptions. - Allowed values: `REPORT_JUSTIFYING_TREATMENT`, `DRUGS_ADMINISTERED`, `TREATMENT_DIAGNOSIS`, `INITIAL_ASSESSMENT`, `FUNCTIONAL_GOALS`, `PLAN_OF_TREATMENT`, `PROGRESS_REPORT`, `CONTINUED_TREATMENT`, `CHEMICAL_ANALYSIS`, `CERTIFIED_TEST_REPORT`, `JUSTIFICATION_FOR_ADMISSION`, `RECOVERY_PLAN`, `ALLERGIES_SENSITIVITIES`, `AUTOPSY_REPORT`, `AMBULANCE_CERTIFICATION`, `ADMISSION_SUMMARY`, `PRESCRIPTION`, `PHYSICIAN_ORDER`, `REFERRAL_FORM`, `BENCHMARK_TESTING_RESULTS`, `BASELINE`, `BLANKET_TEST_RESULTS`, `CHIROPRACTIC_JUSTIFICATION`, `CONSENT_FORMS`, `CERTIFICATION`, `DRUG_PROFILE`, `DENTAL_MODELS`, `DME_PRESCRIPTION`, `DIAGNOSTIC_REPORT`, `DISCHARGE_MONITORING`, `DISCHARGE_SUMMARY`, `EXPLANATION_OF_BENEFITS`, `HEALTH_CERTIFICATE`, `HEALTH_CLINIC_RECORDS`, `IMMUNIZATION_RECORD`, `STATE_IMMUNIZATION_RECORDS`, `LABORATORY_RESULTS`, `MEDICAL_RECORD_ATTACHMENT`, `MODELS`, `NURSING_NOTES`, `OPERATIVE_NOTE`, `OXYGEN_CONTENT_AVERAGING`, `ORDERS_TREATMENTS`, `PHYSICAL_EXAMINATION`, `OXYGEN_THERAPY_CERTIFICATION`, `SUPPORT_DATA`, `PATHOLOGY_REPORT`, `MEDICAL_HISTORY`, `PARENTERAL_ENTERAL_CERTIFICATION`, `PHYSICAL_THERAPY_NOTES`, `PROSTHETICS_ORTHOTIC_CERTIFICATION`, `PARAMEDICAL_RESULTS`, `PHYSICIAN_REPORT`, `PHYSICAL_THERAPY_CERTIFICATION`, `RADIOLOGY_FILMS`, `RADIOLOGY_REPORTS`, `TESTS_ANALYSIS_REPORT`, `RENEWABLE_OXYGEN_CONTENT`, `SYMPTOMS_DOCUMENT`, `DEATH_NOTIFICATION`, `PHOTOGRAPHS` - **`encounter.attachments[].transmissionCode`** (`string`) (required): How an attachment is transmitted to the payer. - `ELECTRONICALLY_ONLY`: The attachment is sent electronically only. - `BY_MAIL`: The attachment is sent by mail. - `BY_FAX`: The attachment is sent by fax. - `EMAIL`: The attachment is sent by email. - `FILE_TRANSFER`: The attachment is sent by file transfer. - `AVAILABLE_ON_REQUEST`: The attachment is held by the provider and made available to the payer on request. - Allowed values: `AVAILABLE_ON_REQUEST`, `BY_MAIL`, `ELECTRONICALLY_ONLY`, `EMAIL`, `FILE_TRANSFER`, `BY_FAX` - **`encounter.claimCodes`** (`array of strings`): **[CMS-1500 Box 10d]** Up to four National Uniform Claim Committee (NUCC) condition codes. A condition code is a two-character code that provides extra information about the patient's condition or the claim itself, such as whether the claim is part of disaster relief. For a list, visit the [NUCC Condition Codes](https://www.nucc.org/index.php/code-sets-mainmenu-41/condition-codes-mainmenu-38). - **`encounter.claimNote`** (`any`): **[CMS-1500 Box 19]** A free-text note with additional information about the claim. Provide exactly one note type. - **`encounter.claimNote (variant 1).additionalInformation`** (`string`) (required): Additional information that helps explain the claim, such as a special billing situation or extra context. Don't use this to describe unspecified procedure codes. - **`encounter.claimNote (variant 2).certificationNarrative`** (`string`) (required): A narrative that certifies medical necessity or another payer-required certification. - **`encounter.claimNote (variant 3).goalsRehabilitationOrDischargePlans`** (`string`) (required): Therapy or rehabilitation notes summarizing goals, rehabilitation potential, or discharge plans. - **`encounter.claimNote (variant 4).diagnosisDescription`** (`string`) (required): A description of the diagnosis, usually provided to clarify an unspecified or unlisted procedure code. - **`encounter.claimNote (variant 5).thirdPartyOrganization`** (`string`) (required): Information about a third-party organization related to the claim. - **`encounter.clinicalDates`** (`object`): Dates relevant to the patient's condition and care. Include only the dates that apply to the claim. - **`encounter.clinicalDates.accident`** (`string`): **[CMS-1500 Box 15]** The date of the accident related to this claim. Required when `patientCondition.isAutoAccidentRelated` or `patientCondition.isOtherAccidentRelated` is `true`, and when the condition is employment-related and resulted from an accident. - **`encounter.clinicalDates.acuteManifestationOfChronicCondition`** (`string`): **[CMS-1500 Box 15]** The date the patient first experienced acute symptoms of a chronic condition. Required for certain spinal manipulation claims billed to Medicare. - **`encounter.clinicalDates.assumedCare`** (`string`): **[CMS-1500 Box 15]** The date the provider assumed care of the patient, for shared-care arrangements. - **`encounter.clinicalDates.firstVisitOrConsultation`** (`string`): **[CMS-1500 Box 15]** The date of the patient's first visit or consultation, when required by the payer. - **`encounter.clinicalDates.hospitalization`** (`object`): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`encounter.clinicalDates.hospitalization.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`encounter.clinicalDates.hospitalization.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`encounter.clinicalDates.initialTreatment`** (`string`): **[CMS-1500 Box 15]** The date the patient first received treatment for the current condition. Required when this date impacts adjudication for services such as spinal manipulation, physical or occupational therapy, or pregnancy. - **`encounter.clinicalDates.lastMenstrualPeriod`** (`string`): **[CMS-1500 Box 14]** The date of the patient's last menstrual period (LMP) before pregnancy. Provide for claims related to a pregnancy. - **`encounter.clinicalDates.lastSeen`** (`string`): **[CMS-1500 Box 15]** The date the patient was last seen by the attending or supervising physician for the qualifying condition. Required for routine foot care services when this date impacts adjudication. - **`encounter.clinicalDates.lastWorked`** (`string`): **[CMS-1500 Box 15]** The last date the patient worked, for disability or workers' compensation claims. - **`encounter.clinicalDates.lastXray`** (`string`): **[CMS-1500 Box 15]** The date of the patient's last X-ray, for claims related to spinal manipulation. - **`encounter.clinicalDates.onsetOfCurrentIllness`** (`string`): **[CMS-1500 Box 14]** The date the patient first experienced acute symptoms of the current illness or injury. Required when a service in the claim is the first for a new illness or injury, when the claim is related to an employment or accident condition, or when the payer requires it. For an emergency, provide this date when it is known and differs from the date of service. - **`encounter.clinicalDates.prescription`** (`string`): **[CMS-1500 Box 15]** The date of the patient's hearing or vision prescription. Required for claims billing hearing devices or vision frames and lenses. - **`encounter.clinicalDates.relinquishedCare`** (`string`): **[CMS-1500 Box 15]** The date the provider relinquished care of the patient, for shared-care arrangements. - **`encounter.clinicalDates.repricerReceived`** (`string`): **[CMS-1500 Box 15]** The date the repricer received the claim, when applicable. - **`encounter.clinicalDates.returnedToWork`** (`string`): **[CMS-1500 Box 15]** The date the patient returned to work, for disability or workers' compensation claims. - **`encounter.clinicalDates.unableToWork`** (`object`): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`encounter.clinicalDates.unableToWork.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`encounter.clinicalDates.unableToWork.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`encounter.epsdtReferralCodes`** (`array of strings`): **[CMS-1500 Box 24h]** Early and Periodic Screening, Diagnosis, and Treatment (EPSDT) referral condition indicators for the claim. EPSDT is a Medicaid program that provides preventive health care services for children under age 21. - Include when the claim bills an EPSDT screening service, with the referral outcome of the screening. - Use `NOT_USED` when the screening did not result in a referral. - Mark services that resulted from a screening with `serviceLines[].isEpsdtRelated`. - **`encounter.patientCondition`** (`object`): Whether the patient's illness or injury is related to employment or an accident. - **`encounter.patientCondition.autoAccidentState`** (`string`): **[CMS-1500 Box 10b]** The two-letter state code where the automobile accident occurred. Required when `isAutoAccidentRelated` is `true`. - **`encounter.patientCondition.isAutoAccidentRelated`** (`boolean`): **[CMS-1500 Box 10b]** Whether the patient's condition is related to an automobile accident. When `true`, set `autoAccidentState`. Other insurance, such as automobile liability coverage, may be the primary payer. - **`encounter.patientCondition.isEmploymentRelated`** (`boolean`): **[CMS-1500 Box 10a]** Whether the patient's condition is related to their employment. - **`encounter.patientCondition.isOtherAccidentRelated`** (`boolean`): **[CMS-1500 Box 10c]** Whether the patient's condition is related to an accident other than an automobile accident. - **`encounter.primaryDiagnosisCode`** (`string`) (required): **[CMS-1500 Box 21]** The principal diagnosis for the claim, which describes the main reason for the encounter. Must be an [ICD-10-CM code](https://www.cdc.gov/nchs/icd/icd-10-cm/index.html). Stedi combines this with `additionalDiagnosisCodes` and the diagnosis codes on the service lines to form the claim's diagnosis list, which can hold at most 12 codes. - Use valid, billable codes at the highest level of specificity available. - Don't submit the decimal point (e.g., submit `I639` not `I63.9`). - Don't submit header codes (codes with fewer than three characters, such as `E10` for Type 1 diabetes). - **`encounter.primaryPlaceOfService`** (`string`): The primary place of service code identifying where the services were rendered. When omitted, it is inferred from the most common place of service across the claim's service lines. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`encounter.priorReferringProvider`** (`object`): A provider involved in referring the patient for the care on this claim. Each provider should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`encounter.priorReferringProvider.identifiers`** (`object`): Identifiers for a referring provider. - **`encounter.priorReferringProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the referring provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.priorReferringProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The referring provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`encounter.priorReferringProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The referring provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`encounter.priorReferringProvider.name`** (`any`) (required): A name that belongs to a person. - **`encounter.priorReferringProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`encounter.priorReferringProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`encounter.priorReferringProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`encounter.priorReferringProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`encounter.priorReferringProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`encounter.referenceNumbers`** (`object`): Payer-issued reference numbers that apply to the entire claim. - **`encounter.referenceNumbers.clia`** (`string`): **[CMS-1500 Box 23]** The Clinical Laboratory Improvement Amendments (CLIA) certification number. Required for all CLIA-certified facilities performing CLIA-covered laboratory services. When the claim contains both in-house and outsourced laboratory services, use the CLIA number for services performed by the billing or rendering provider. - **`encounter.referenceNumbers.mammographyCertification`** (`string`): **[CMS-1500 Box 23]** The facility's six-digit FDA Mammography Quality Standards Act (MQSA) certification number. Required when mammography services are rendered by a certified mammography provider. - **`encounter.referenceNumbers.priorAuthorization`** (`string`): **[CMS-1500 Box 23]** A payer-issued prior authorization number that approves the services on this claim. Required when the payer or Utilization Management Organization (UMO) assigned an authorization number and the services were preauthorized. To override this for a specific service line, set `serviceLines[].priorAuthorizations` instead. - **`encounter.referenceNumbers.referral`** (`string`): **[CMS-1500 Box 23]** A referral number for the provider referral tied to the services on this claim. Required when the payer or Utilization Management Organization (UMO) assigned a referral number and a referral is involved. - **`encounter.referringProvider`** (`object`): A provider involved in referring the patient for the care on this claim. Each provider should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`encounter.referringProvider.identifiers`** (`object`): Identifiers for a referring provider. - **`encounter.referringProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the referring provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.referringProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The referring provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`encounter.referringProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The referring provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`encounter.referringProvider.name`** (`any`) (required): A name that belongs to a person. - **`encounter.referringProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`encounter.referringProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`encounter.referringProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`encounter.referringProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`encounter.referringProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`encounter.resubmission`** (`object`): Information identifying this claim as a replacement or cancellation of a previously submitted claim. - **`encounter.resubmission.code`** (`string`): Whether this claim replaces or cancels a previously submitted claim. - `REPLACEMENT_OF_PRIOR_CLAIM`: This claim replaces a previously submitted claim. - `CANCELLATION_OF_PRIOR_CLAIM`: This claim cancels, or voids, a previously submitted claim. - Allowed values: `REPLACEMENT_OF_PRIOR_CLAIM`, `CANCELLATION_OF_PRIOR_CLAIM` - **`encounter.resubmission.originalReferenceNumber`** (`string`): The Payer Claim Control Number (sometimes called the ICN) of the original claim being replaced or cancelled. Generally required when `code` is set. One exception is Original Medicare, which specifies that you omit this value from resubmissions. - **`encounter.supervisingProvider`** (`object`): The provider who oversaw the rendering provider and the care reported in this claim. This should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`encounter.supervisingProvider.identifiers`** (`object`): Identifiers for a supervising provider. - **`encounter.supervisingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the supervising provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.supervisingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 17a]** A location number assigned to the supervising provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.supervisingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The supervising provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`encounter.supervisingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The supervising provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`encounter.supervisingProvider.name`** (`any`) (required): A name that belongs to a person. - **`encounter.supervisingProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`encounter.supervisingProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`encounter.supervisingProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`encounter.supervisingProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`encounter.supervisingProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`insured`** (`object`) (required): The person or entity that carries the insurance policy being billed, also called the subscriber or primary policyholder. May be different from the patient. - **`insured.address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`insured.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`insured.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`insured.address.city`** (`string`) (required): The city name. - **`insured.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`insured.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`insured.dateOfBirth`** (`string`): **[CMS-1500 Box 11a]** The insured's date of birth. Used to distinguish the insured from other members with similar names. - **`insured.gender`** (`string`): A code indicating the person's sex. - `MALE`: Male. - `FEMALE`: Female. - `UNKNOWN`: Unknown. Use when the person declines to answer or does not identify as male or female. Note that some payers may reject the claim if the sex doesn't match what they have in their member records. - Allowed values: `MALE`, `FEMALE`, `UNKNOWN` - **`insured.insuranceType`** (`string`) (required): The type of health insurance plan being billed. Pick the type that best matches the plan and payer. For most commercial payers, use `OTHER`. - `MEDICARE`: Original Medicare. Don't use this for Medicare Advantage plans – use `OTHER` instead. - `MEDICAID`: Medicaid. - `TRICARE`: TRICARE, the U.S. Department of Defense's health care program for military members and their families. - `CHAMPVA`: CHAMPVA, the Civilian Health and Medical Program of the Department of Veterans Affairs, which covers spouses and dependents of certain disabled or deceased veterans. - `FECA_BLK_LUNG`: Workers' compensation, FECA, or Black Lung coverage for workers injured on the job. FECA stands for the Federal Employees' Compensation Act. - `OTHER`: Any other plan type, including commercial payers and Medicare Advantage. Use this for most claims. - Allowed values: `MEDICARE`, `MEDICAID`, `TRICARE`, `CHAMPVA`, `FECA_BLK_LUNG`, `OTHER` - **`insured.memberId`** (`string`): **[CMS-1500 Box 1a]** The member ID for the insured's insurance policy, typically found on the insurance card. For Medicare claims, this is the insured's Medicare Beneficiary Identifier (MBI). - **`insured.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`insured.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`insured.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`insured.name (variant 2).person.firstName`** (`string`): The person's first name. - **`insured.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`insured.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`insured.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`insured.paymentResponsibilityLevelCode`** (`string`) (required): The payer's responsibility level for the claim. - `PRIMARY`: The payer is the primary payer for this claim. - Allowed values: `PRIMARY` - **`insured.planName`** (`string`): **[CMS-1500 Box 11c]** The name of the insured's insurance plan, typically found on the insurance card. - **`insured.policyOrGroupNumber`** (`string`): **[CMS-1500 Box 11]** The payer's code for the employer or other party that purchased the plan, typically found on the insurance card. For workers' compensation claims, use the Federal Employees' Compensation Act (FECA) number for the case. - **`insured.propertyCasualtyClaimNumber`** (`string`): **[CMS-1500 Box 11b]** The claim number assigned by a property or casualty insurer. Include for workers' compensation, automobile accident, or other liability claims when the payer requires it. - **`insured.ssn`** (`string`): **[CMS-1500 Box 11b]** The insured's Social Security Number. Only include when specifically instructed by a payer. - **`otherInsured`** (`array of ProfessionalClaimSubmissionOtherInsured objects`): **[CMS-1500 Box 9, 9a, 9d]** Coverage the patient holds under another insurance policy, relevant to coordination of benefits. Include this when the patient has coverage from another payer in addition to the one you're billing. - **`otherInsured[].address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`otherInsured[].address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`otherInsured[].address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`otherInsured[].address.city`** (`string`) (required): The city name. - **`otherInsured[].address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`otherInsured[].address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`otherInsured[].authorization`** (`object`) (required): Signature and assignment-of-benefits indicators for coverage under another policy. - **`otherInsured[].authorization.insuredAuthorizesAssignment`** (`string`) (required): Whether the insured has authorized payment of benefits directly to the provider. - `YES`: The insured has authorized assignment of benefits. - `NO`: The insured has not authorized assignment of benefits. - `NOT_APPLICABLE`: Assignment of benefits does not apply, typically because there is no signature on file. - Allowed values: `NO`, `NOT_APPLICABLE`, `YES` - **`otherInsured[].authorization.patientReleasesMedicalInfo`** (`string`) (required): Whether the provider has the patient's authorization to release medical information needed to process the claim. - `YES`: The provider has the patient's signed authorization to release medical information. - `INFORMED_CONSENT`: The provider has informed consent to release medical information, but the signed authorization has not been obtained. - Allowed values: `INFORMED_CONSENT`, `YES` - **`otherInsured[].authorization.providerGeneratedPatientSignature`** (`boolean`): Whether the provider generated the patient's signature because the patient was physically unable to sign. - **`otherInsured[].claimFilingIndicator`** (`string`) (required): The type of plan or payer that other coverage is filed under. - `MEDICARE_PART_A`: Medicare Part A. - `MEDICARE_PART_B`: Medicare Part B. - `MEDICAID`: Medicaid. - `TRICARE`: TRICARE. - `BLUE_CROSS_BLUE_SHIELD`: Blue Cross Blue Shield. - `COMMERCIAL_INSURANCE`: A commercial insurance company. - `HEALTH_MAINTENANCE_ORGANIZATION`: A health maintenance organization (HMO). - `HMO_MEDICARE_RISK`: An HMO Medicare risk plan. - `PREFERRED_PROVIDER_ORGANIZATION`: A preferred provider organization (PPO). - `POINT_OF_SERVICE`: A point-of-service (POS) plan. - `EXCLUSIVE_PROVIDER_ORGANIZATION`: An exclusive provider organization (EPO). - `INDEMNITY_INSURANCE`: An indemnity insurance plan. - `DENTAL_MAINTENANCE_ORGANIZATION`: A dental maintenance organization. - `AUTOMOBILE_MEDICAL`: Automobile medical coverage. - `LIABILITY_MEDICAL`: Liability medical coverage. - `DISABILITY`: Disability coverage. - `WORKERS_COMPENSATION_HEALTH_CLAIM`: A workers' compensation health claim. - `FEDERAL_EMPLOYEES_PROGRAM`: The Federal Employees Program. - `OTHER_FEDERAL_PROGRAM`: Another federal program. - `OTHER_NON_FEDERAL_PROGRAMS`: Another non-federal program. - `TITLE_V`: A Title V program. - `VETERANS_AFFAIRS_PLAN`: A Veterans Affairs plan. - `MUTUALLY_DEFINED`: A mutually defined plan type agreed on with the payer. - Allowed values: `OTHER_NON_FEDERAL_PROGRAMS`, `PREFERRED_PROVIDER_ORGANIZATION`, `POINT_OF_SERVICE`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `INDEMNITY_INSURANCE`, `HMO_MEDICARE_RISK`, `DENTAL_MAINTENANCE_ORGANIZATION`, `AUTOMOBILE_MEDICAL`, `BLUE_CROSS_BLUE_SHIELD`, `TRICARE`, `COMMERCIAL_INSURANCE`, `DISABILITY`, `FEDERAL_EMPLOYEES_PROGRAM`, `HEALTH_MAINTENANCE_ORGANIZATION`, `LIABILITY_MEDICAL`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `OTHER_FEDERAL_PROGRAM`, `TITLE_V`, `VETERANS_AFFAIRS_PLAN`, `WORKERS_COMPENSATION_HEALTH_CLAIM`, `MUTUALLY_DEFINED` - **`otherInsured[].medicareSecondaryInsuranceType`** (`string`): The reason the other coverage makes Medicare the secondary payer. - `WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EGHP`: A working aged beneficiary or spouse covered by an employer group health plan. - `END_STAGE_RENAL_DISEASE_IN_MANDATED_COORDINATION_PERIOD_WITH_EGHP`: End-stage renal disease coverage during the mandated coordination period with an employer group health plan. - `NO_FAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`: No-fault insurance, including automobile coverage, is primary. - `WORKERS_COMPENSATION`: Workers' compensation is primary. - `PUBLIC_HEALTH_SERVICE_OR_OTHER_FEDERAL_AGENCY`: A public health service or other federal agency is primary. - `BLACK_LUNG`: Black Lung benefits are primary. - `VETERANS_ADMINISTRATION`: Veterans Administration coverage is primary. - `DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LGHP`: A disabled beneficiary under age 65 covered by a large group health plan. - `OTHER_LIABILITY_INSURANCE_IS_PRIMARY`: Other liability insurance is primary. - Allowed values: `WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EGHP`, `END_STAGE_RENAL_DISEASE_IN_MANDATED_COORDINATION_PERIOD_WITH_EGHP`, `NO_FAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `WORKERS_COMPENSATION`, `PUBLIC_HEALTH_SERVICE_OR_OTHER_FEDERAL_AGENCY`, `BLACK_LUNG`, `VETERANS_ADMINISTRATION`, `DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LGHP`, `OTHER_LIABILITY_INSURANCE_IS_PRIMARY` - **`otherInsured[].memberId`** (`string`) (required): **[CMS-1500 Box 9]** The member ID for the other policy. - **`otherInsured[].name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`otherInsured[].name (variant 1).organization`** (`string`) (required): The organization's business name. - **`otherInsured[].name (variant 2).person`** (`object`) (required): The name of an individual person. - **`otherInsured[].name (variant 2).person.firstName`** (`string`): The person's first name. - **`otherInsured[].name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`otherInsured[].name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`otherInsured[].name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`otherInsured[].otherPayer`** (`object`) (required): The payer that provides coverage under another policy. - **`otherInsured[].otherPayer.id`** (`any`) (required): An identifier for the other payer. Provide exactly one. - **`otherInsured[].otherPayer.id (variant 1).payerId`** (`string`) (required): The other payer's payer identification number. - **`otherInsured[].otherPayer.id (variant 2).cmsPlanId`** (`string`) (required): The other payer's CMS plan ID, such as a Health Plan ID (HPID) or Other Entity Identifier (OEID). - **`otherInsured[].otherPayer.name`** (`any`) (required): A name that belongs to an organization. - **`otherInsured[].otherPayer.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`otherInsured[].planName`** (`string`): **[CMS-1500 Box 9d]** The name of the other insurance plan. - **`otherInsured[].policyOrGroupNumber`** (`string`): **[CMS-1500 Box 9a]** The policy or group number for the other coverage. - **`otherInsured[].relationshipToInsured`** (`string`) (required): How the patient is related to the person insured under the other policy. - `SELF`: The patient is the other insured. - `SPOUSE`: The patient is the other insured's spouse. - `CHILD`: The patient is the other insured's child. - `EMPLOYEE`: The patient is the other insured's employee. - `LIFE_PARTNER`: The patient is the other insured's life partner. - `ORGAN_DONOR`: The patient is an organ donor. - `CADAVER_DONOR`: The patient is a cadaver donor. - `OTHER_RELATIONSHIP`: The patient has another relationship to the other insured. - `UNKNOWN`: The relationship is unknown. - Allowed values: `SPOUSE`, `SELF`, `CHILD`, `EMPLOYEE`, `UNKNOWN`, `ORGAN_DONOR`, `CADAVER_DONOR`, `LIFE_PARTNER`, `OTHER_RELATIONSHIP` - **`otherInsured[].responsibilityLevel`** (`string`) (required): A payer's responsibility level for a claim. - `PRIMARY`: The primary payer. - `SECONDARY`: The secondary payer. - `TERTIARY`: The tertiary payer. - Allowed values: `PRIMARY`, `SECONDARY`, `TERTIARY` - **`otherInsured[].ssn`** (`string`): The Social Security Number of the person insured under the other policy. Only include when specifically instructed by a payer. - **`patient`** (`object`): The person who received care, when they are someone other than the insured. - **`patient.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`patient.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`patient.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`patient.address.city`** (`string`) (required): The city name. - **`patient.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`patient.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`patient.dateOfBirth`** (`string`) (required): **[CMS-1500 Box 3]** The patient's date of birth. Used to distinguish the patient from other members with similar names. - **`patient.gender`** (`string`) (required): A code indicating the person's sex. - `MALE`: Male. - `FEMALE`: Female. - `UNKNOWN`: Unknown. Use when the person declines to answer or does not identify as male or female. Note that some payers may reject the claim if the sex doesn't match what they have in their member records. - Allowed values: `MALE`, `FEMALE`, `UNKNOWN` - **`patient.name`** (`any`) (required): A name that belongs to a person. - **`patient.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`patient.name (variant 1).person.firstName`** (`string`): The person's first name. - **`patient.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`patient.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`patient.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`patient.relationshipToInsured`** (`string`) (required): How the patient is related to the insured. - `SPOUSE`: The patient is the insured's spouse. - `CHILD`: The patient is the insured's child. - `EMPLOYEE`: The patient is the insured's employee, typically for workers' compensation claims where the insured is the employer. - `OTHER_RELATIONSHIP`: The patient has another relationship to the insured. - Allowed values: `SPOUSE`, `CHILD`, `EMPLOYEE`, `OTHER_RELATIONSHIP` - **`payer`** (`object`) (required): The payer being billed for the claim. - **`payer.address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`payer.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payer.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payer.address.city`** (`string`) (required): The city name. - **`payer.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`payer.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`payer.id`** (`string`) (required): **[CMS-1500 Carrier Block]** The Stedi payer ID for the payer being billed. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading 0 characters. Payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`payer.name`** (`any`): A name that belongs to an organization. - **`payer.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`payer.receiverId`** (`string`): **[CMS-1500 Carrier Block]** The ID of the receiver that processes the claim, typically the clearinghouse or payer. Only include when the receiver differs from the payer. - **`purpose`** (`string`) (required): The purpose of the claim submission. - `CHARGEABLE`: A standard fee-for-service claim with at least one chargeable line item. Use this for most submissions. - `SUBROGATION_DEMAND`: Only for use by state Medicaid agencies performing post-payment recovery. - `REPORTING`: A reporting-only submission that is not a request for payment. - Allowed values: `SUBROGATION_DEMAND`, `CHARGEABLE`, `REPORTING` - **`serviceLines`** (`array of ProfessionalClaimSubmissionServiceLine objects`) (required): **[CMS-1500 Box 17, 17a, 17b, 20, 24a-24j]** The individual services, procedures, or supplies being billed. Each service line corresponds to one row in Box 24 of the CMS-1500 form. - **`serviceLines[].attachments`** (`array of ProfessionalClaimSubmissionAttachment objects`): **[CMS-1500 Box 24]** Supporting documentation attached to this service line. Only include when the payer requires it. Visit [Submit claim attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for more information. - **`serviceLines[].attachments[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`serviceLines[].attachments[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is required when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`serviceLines[].attachments[].reportTypeCode`** (`string`) (required): The type of report being attached to the claim. Visit [Attachment report type codes](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of values and their descriptions. - Allowed values: `REPORT_JUSTIFYING_TREATMENT`, `DRUGS_ADMINISTERED`, `TREATMENT_DIAGNOSIS`, `INITIAL_ASSESSMENT`, `FUNCTIONAL_GOALS`, `PLAN_OF_TREATMENT`, `PROGRESS_REPORT`, `CONTINUED_TREATMENT`, `CHEMICAL_ANALYSIS`, `CERTIFIED_TEST_REPORT`, `JUSTIFICATION_FOR_ADMISSION`, `RECOVERY_PLAN`, `ALLERGIES_SENSITIVITIES`, `AUTOPSY_REPORT`, `AMBULANCE_CERTIFICATION`, `ADMISSION_SUMMARY`, `PRESCRIPTION`, `PHYSICIAN_ORDER`, `REFERRAL_FORM`, `BENCHMARK_TESTING_RESULTS`, `BASELINE`, `BLANKET_TEST_RESULTS`, `CHIROPRACTIC_JUSTIFICATION`, `CONSENT_FORMS`, `CERTIFICATION`, `DRUG_PROFILE`, `DENTAL_MODELS`, `DME_PRESCRIPTION`, `DIAGNOSTIC_REPORT`, `DISCHARGE_MONITORING`, `DISCHARGE_SUMMARY`, `EXPLANATION_OF_BENEFITS`, `HEALTH_CERTIFICATE`, `HEALTH_CLINIC_RECORDS`, `IMMUNIZATION_RECORD`, `STATE_IMMUNIZATION_RECORDS`, `LABORATORY_RESULTS`, `MEDICAL_RECORD_ATTACHMENT`, `MODELS`, `NURSING_NOTES`, `OPERATIVE_NOTE`, `OXYGEN_CONTENT_AVERAGING`, `ORDERS_TREATMENTS`, `PHYSICAL_EXAMINATION`, `OXYGEN_THERAPY_CERTIFICATION`, `SUPPORT_DATA`, `PATHOLOGY_REPORT`, `MEDICAL_HISTORY`, `PARENTERAL_ENTERAL_CERTIFICATION`, `PHYSICAL_THERAPY_NOTES`, `PROSTHETICS_ORTHOTIC_CERTIFICATION`, `PARAMEDICAL_RESULTS`, `PHYSICIAN_REPORT`, `PHYSICAL_THERAPY_CERTIFICATION`, `RADIOLOGY_FILMS`, `RADIOLOGY_REPORTS`, `TESTS_ANALYSIS_REPORT`, `RENEWABLE_OXYGEN_CONTENT`, `SYMPTOMS_DOCUMENT`, `DEATH_NOTIFICATION`, `PHOTOGRAPHS` - **`serviceLines[].attachments[].transmissionCode`** (`string`) (required): How an attachment is transmitted to the payer. - `ELECTRONICALLY_ONLY`: The attachment is sent electronically only. - `BY_MAIL`: The attachment is sent by mail. - `BY_FAX`: The attachment is sent by fax. - `EMAIL`: The attachment is sent by email. - `FILE_TRANSFER`: The attachment is sent by file transfer. - `AVAILABLE_ON_REQUEST`: The attachment is held by the provider and made available to the payer on request. - Allowed values: `AVAILABLE_ON_REQUEST`, `BY_MAIL`, `ELECTRONICALLY_ONLY`, `EMAIL`, `FILE_TRANSFER`, `BY_FAX` - **`serviceLines[].datesOfService`** (`object`) (required): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`serviceLines[].datesOfService.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`serviceLines[].datesOfService.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`serviceLines[].diagnosisCodes`** (`array of strings`) (required): **[CMS-1500 Box 24e]** Up to four diagnoses this service relates to. Must be [ICD-10-CM codes](https://www.cdc.gov/nchs/icd/icd-10-cm/index.html). List them in order of importance to the service, with the most relevant diagnosis first. Across `encounter.primaryDiagnosisCode` and the codes on every service line, a claim can use at most 12 distinct diagnosis codes. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - Don't submit the decimal point for ICD codes. The decimal point is implied. - Don't submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the Value Set Authority Center. If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`serviceLines[].drugIdentification`** (`object`): Drug identification details for a service line, required when a drug is billed and a prescription was written. - **`serviceLines[].drugIdentification.associationNumber`** (`any`): A prescription number or compound drug link sequence number. Provide exactly one. - **`serviceLines[].drugIdentification.associationNumber (variant 1).linkSequenceNumber`** (`string`) (required): A provider-assigned number, unique to this claim, that ties together the components of a compound drug when there is no prescription number. - **`serviceLines[].drugIdentification.associationNumber (variant 2).pharmacyPrescriptionNumber`** (`string`) (required): The pharmacy prescription number. For a compound drug, all components share the same prescription number so the payer can relate them. - **`serviceLines[].drugIdentification.nationalDrugCode`** (`string`) (required): The dispensed drug's National Drug Code (NDC). - **`serviceLines[].drugIdentification.originalNdc`** (`string`): The original National Drug Code (NDC), when it differs from the code reported in `nationalDrugCode`. - **`serviceLines[].drugIdentification.unitCount`** (`string`) (required): The quantity of the drug administered, expressed in the unit given by `unitOfMeasure`. - **`serviceLines[].drugIdentification.unitOfMeasure`** (`string`) (required): The unit of measure for a drug quantity. - `INTERNATIONAL_UNIT`: International unit. - `GRAM`: Gram. - `MILLIGRAM`: Milligram. - `MILLILITER`: Milliliter. - `UNIT`: Unit. - Allowed values: `INTERNATIONAL_UNIT`, `GRAM`, `MILLIGRAM`, `MILLILITER`, `UNIT` - **`serviceLines[].isEmergency`** (`boolean`): **[CMS-1500 Box 24c]** Whether the service was related to an emergency, meaning the patient required immediate intervention for a severe, life-threatening, or potentially disabling condition. - **`serviceLines[].isEpsdtRelated`** (`boolean`): **[CMS-1500 Box 24h]** Whether the service is related to an Early and Periodic Screening, Diagnosis, and Treatment (EPSDT) encounter. Set this on services that resulted from an EPSDT screening, not on the screening service itself. Report the screening's referral outcome in `encounter.epsdtReferralCodes`. - **`serviceLines[].isFamilyPlanning`** (`boolean`): **[CMS-1500 Box 24h]** Whether the service was related to a family planning program. - **`serviceLines[].lineItemChargeAmount`** (`string`) (required): **[CMS-1500 Box 24f]** The charge for this service line, including the provider's base charge and any applicable tax or postage. It is acceptable to set this to `0` (zero). - **`serviceLines[].lineItemControlNumber`** (`string`): A control number you assign to this service line for your own tracking. Each must be unique within the claim. If you don't set it, Stedi sets it for you – a random ULID. - **`serviceLines[].narrativeForUnspecifiedCode`** (`string`): **[CMS-1500 Box 24]** A free-text description that clarifies the procedure code and any modifiers. Provide when billing an unspecified or unlisted procedure code. - **`serviceLines[].orderingProvider`** (`object`): The provider who ordered the services, tests, or supplies on a service line. This should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`serviceLines[].orderingProvider.identifiers`** (`object`): Identifiers for an ordering provider. - **`serviceLines[].orderingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the ordering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].orderingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The ordering provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`serviceLines[].orderingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The ordering provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].orderingProvider.name`** (`any`) (required): A name that belongs to a person. - **`serviceLines[].orderingProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`serviceLines[].orderingProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`serviceLines[].orderingProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`serviceLines[].orderingProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`serviceLines[].orderingProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`serviceLines[].placeOfService`** (`string`): **[CMS-1500 Box 24b]** The place of service code identifying where the patient received the service. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`serviceLines[].priorAuthorizations`** (`array of ProfessionalClaimSubmissionServiceLinePriorAuthorizationNumber objects`): Prior authorization numbers that apply to this service line. Include only numbers that differ from the claim-level prior authorization in `encounter.referenceNumbers.priorAuthorization`. You can use the same number on multiple service lines. - **`serviceLines[].priorAuthorizations[].otherPayerPrimaryId`** (`string`): The identifier of the other payer that issued this prior authorization number. Include only when the number was issued by a payer other than the one being billed, and match the other payer's identifier in `otherInsured[].otherPayer.id`. - **`serviceLines[].priorAuthorizations[].priorAuthorizationNumber`** (`string`) (required): The payer-issued prior authorization number for this service line. - **`serviceLines[].procedureCode`** (`object`) (required): A procedure, service, or supply code with any applicable modifiers. - **`serviceLines[].procedureCode.code`** (`string`) (required): The procedure, service, or supply code, typically a CPT or HCPCS code. - **`serviceLines[].procedureCode.modifiers`** (`array of strings`): Up to four modifier codes that convey special circumstances related to the service, such as `25` or `JW`. - **`serviceLines[].purchasedService`** (`object`): A service the billing provider bought from an outside provider and is billing to the payer. - **`serviceLines[].purchasedService.chargeAmount`** (`string`) (required): **[CMS-1500 Box 20]** The price the billing provider paid the outside provider for this service. - **`serviceLines[].purchasedService.provider`** (`object`) (required): The outside provider the billing provider bought the service from. - **`serviceLines[].purchasedService.provider.entityType`** (`string`) (required): Whether a purchased service provider is a person or an organization. - Allowed values: `PERSON`, `ORGANIZATION` - **`serviceLines[].purchasedService.provider.identifiers`** (`object`) (required): Identifiers for a purchased service provider. - **`serviceLines[].purchasedService.provider.identifiers.npi`** (`string`) (required): **[CMS-1500 Box 32a]** The purchased service provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`serviceLines[].renderingProvider`** (`object`): The provider who performed the service. This can be an individual or an organization, such as a laboratory. When a substitute provider (locum tenens) was used, supply that provider's information here. You can omit this object when the rendering provider is the same as the billing provider. - **`serviceLines[].renderingProvider.identifiers`** (`object`): Identifiers for the rendering provider. - **`serviceLines[].renderingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 24i]** A commercial number assigned to the rendering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].renderingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 24i]** A location number assigned to the rendering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].renderingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 24j]** The rendering provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`serviceLines[].renderingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 24i]** The rendering provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].renderingProvider.identifiers.taxonomyCode`** (`string`): **[CMS-1500 Box 24i]** The rendering provider's taxonomy code from the National Uniform Claim Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/), which identifies the provider's type and specialty. - **`serviceLines[].renderingProvider.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`serviceLines[].renderingProvider.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`serviceLines[].renderingProvider.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`serviceLines[].renderingProvider.name (variant 2).person.firstName`** (`string`): The person's first name. - **`serviceLines[].renderingProvider.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`serviceLines[].renderingProvider.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`serviceLines[].renderingProvider.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`serviceLines[].units`** (`string`) (required): **[CMS-1500 Box 24g]** The number of units of the service provided. The units depend on the procedure code and the nature of the service. For example, they may correspond to office visits (1 unit per visit), individual diagnostic tests (1 unit per test), or time (when a service is billed in 15-minute increments, 4 units could equal 1 hour). For anesthesia procedure codes (00100-01999), report the total anesthesia time in minutes; Stedi reports the unit of measure as minutes for these codes automatically. - **`submitter`** (`object`) (required): The entity submitting the claim to Stedi. - **`submitter.contact`** (`object`): A person or department to contact, with up to one phone number, email address, and fax number. Provide at least one way to reach the contact. - **`submitter.contact.email`** (`string`): The contact's email address. - **`submitter.contact.faxNumber`** (`string`): The contact's fax number. - **`submitter.contact.name`** (`string`): The name of the contact person or department. When omitted, questions are directed to the entity itself. - **`submitter.contact.phoneExtension`** (`string`): The extension for `phoneNumber`. - **`submitter.contact.phoneNumber`** (`string`): The contact's phone number. - **`submitter.etin`** (`string`): **[CMS-1500 Carrier Block]** The submitter's Electronic Transmitter Identification Number (ETIN), a payer-assigned ID that identifies the entity transmitting the claim. - **`submitter.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`submitter.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`submitter.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`submitter.name (variant 2).person.firstName`** (`string`): The person's first name. - **`submitter.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`submitter.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`submitter.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. **Example:** ```json { "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerAcceptsAssignment": "ASSIGNED", "providerSignature": "ON_FILE" }, "billing": { "billingProvider": { "address": { "addressLine1": "123 St", "city": "City", "postalCode": "12345", "state": "IL" }, "identifiers": { "npi": "1999999984", "taxonomyCode": "207Q00000X" }, "name": { "organization": "Test Provider" } }, "patientControlNumber": "TEST-004", "taxId": { "ein": "123456789" }, "totalCharge": "100.00" }, "encounter": { "attachments": [ { "attachmentControlNumber": "PWK-2026-0001", "reportTypeCode": "PROGRESS_REPORT", "transmissionCode": "ELECTRONICALLY_ONLY" } ], "claimCodes": [ "AV" ], "claimNote": { "additionalInformation": "Patient presented with persistent cough and bronchospasm; treated in office." }, "clinicalDates": { "hospitalization": { "end": "2026-03-06", "start": "2026-03-04" }, "initialTreatment": "2026-03-03", "onsetOfCurrentIllness": "2026-03-02", "unableToWork": { "end": "2026-03-10", "start": "2026-03-03" } }, "patientCondition": { "isAutoAccidentRelated": false, "isEmploymentRelated": false, "isOtherAccidentRelated": false }, "primaryDiagnosisCode": "J0190", "priorReferringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "John", "lastName": "Doe" } } }, "referenceNumbers": { "clia": "14D2089999", "priorAuthorization": "PA-2026-11111", "referral": "REF-4321" }, "referringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "resubmission": { "code": "REPLACEMENT_OF_PRIOR_CLAIM", "originalReferenceNumber": "CLM-ORIG-998877" }, "supervisingProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Smith" } } } }, "insured": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1990-01-01", "gender": "FEMALE", "insuranceType": "OTHER", "memberId": "W123456789", "name": { "person": { "firstName": "June", "lastName": "Doe" } }, "paymentResponsibilityLevelCode": "PRIMARY" }, "otherInsured": [ { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerGeneratedPatientSignature": false }, "claimFilingIndicator": "BLUE_CROSS_BLUE_SHIELD", "memberId": "BCBS-IL-554433221", "name": { "person": { "firstName": "Michael", "lastName": "Doe" } }, "otherPayer": { "id": { "payerId": "00621" }, "name": { "organization": "Blue Cross Blue Shield of Illinois" } }, "planName": "BCBS PPO", "policyOrGroupNumber": "BCBS-GRP-3344", "relationshipToInsured": "SPOUSE", "responsibilityLevel": "SECONDARY" } ], "patient": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1900-02-02", "gender": "MALE", "name": { "person": { "firstName": "Liam", "lastName": "Doe" } }, "relationshipToInsured": "CHILD" }, "payer": { "id": "60054", "name": { "organization": "Aetna" } }, "purpose": "CHARGEABLE", "serviceLines": [ { "datesOfService": { "end": "2026-03-03", "start": "2026-03-03" }, "diagnosisCodes": [ "J0190" ], "lineItemChargeAmount": "100.00", "placeOfService": "11", "procedureCode": { "code": "99213" }, "units": "1" } ], "submitter": { "contact": { "phoneNumber": "5555551234" }, "etin": "TEST001", "name": { "organization": "Test Submitter" } } } ``` ### Responses #### 201 CreateProfessionalClaimSubmission 201 response **Schema:** `CreateProfessionalClaimSubmissionResponseContent` **Properties:** - **`claimId`** (`string`) (required): A unique identifier for the claim within Stedi. This ID stays the same throughout the claim's entire lifecycle. For example, the claim ID is the same for the initial submission and any resubmissions. This is how Stedi links a particular claim to responses, such as 277CA claim acknowledgments. - **`errors`** (`array of ClaimRejectionError objects`): Failed claim edits that caused Stedi to reject the claim. - When present, Stedi stored the claim and generated a 277CA claim acknowledgment for the rejection, but didn't send the claim to the payer. You must fix all errors before resubmitting. - When absent, the claim data passed Stedi's edits and Stedi sent the claim to the payer. - **`errors[].description`** (`string`) (required): A human-readable explanation of the error. - **`submissionId`** (`string`) (required): A unique identifier for a specific submission of a claim within Stedi. Stedi generates a submission ID for the initial submission and then a new submission ID for every resubmission of the same claim. This is different from the claim ID, which doesn't change throughout the claim's lifecycle. **Example:** ```json { "claimId": "clm_01K6XFP3TZ8RA9X84963NMW40M", "submissionId": "sbm_01K6XFP3TZ8RA9X84963NMW40N" } ``` #### 400 CreateProfessionalClaimSubmission400Error 400 response **Schema:** `CreateProfessionalClaimSubmission400ErrorResponseContent` #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 CreateProfessionalClaimSubmission403Error 403 response **Schema:** `CreateProfessionalClaimSubmission403ErrorResponseContent` #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of resource not found error. - **`message`** (`string`) (required): Human readable error message explaining why the resource could not be found. #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 CreateProfessionalClaimSubmission429Error 429 response **Schema:** `CreateProfessionalClaimSubmission429ErrorResponseContent` #### 500 CreateProfessionalClaimSubmission500Error 500 response **Schema:** `CreateProfessionalClaimSubmission500ErrorResponseContent` # Real-Time Eligibility Check (270/271) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/post-eligibility-check [Real-time eligibility checks](/healthcare/send-eligibility-checks) are ideal for in-person patient visits, telehealth appointments, and other scenarios where you need immediate information about a patient's coverage. 1. Call this endpoint with a JSON payload. The required information can vary depending on the circumstances, but we recommend starting with a [basic eligibility request](/healthcare/send-eligibility-checks#body---json). 2. Stedi translates your request to the X12 270 EDI format and sends it to the payer. 3. The endpoint returns a synchronous response from the payer in both JSON and raw X12 EDI format. The response contains the patient's eligibility and benefits information. Note that our documentation lists all enums officially allowed in the eligibility response. Some payers return non-compliant values, which Stedi passes through as is. Test your integration with [eligibility mock requests](/healthcare/api-reference/mock-requests-eligibility-checks). ## API Specification Submit a real-time 270/271 eligibility check in JSON format **Endpoint:** `POST /eligibility-check` **Base URL:** `https://healthcare.us.stedi.com/2026-06-01` ### Parameters - **`X-Forwarded-For`** (header): - Type: `string` ### Request Body **Schema:** `CreateEligibilityCheckRequestContent` **Properties:** - **`dependent`** (`object`): A dependent for which you want to retrieve benefits information. - You can only submit one dependent per eligibility check. - Only include the patient's information here when they are listed as a dependent on the subscriber's insurance plan AND the payer cannot uniquely identify them through information outside the subscriber's policy. For example, if the dependent has their own member ID number, you should identify them in the `subscriber` object instead. This includes member IDs that differ only by a suffix, such as `01`, because the patient can still be uniquely identified. - Most Medicaid plans don't support dependents, with a [few exceptions](https://www.stedi.com/docs/healthcare/send-eligibility-checks#medicaid-dependents). Sending this information to payers that don't support dependents will either cause an error, or the payer may ignore the information and return results for the subscriber instead. - Each payer has different requirements, so you should supply the fields necessary for each payer to identify the dependent in their system. However, we **strongly recommend** including the dependent's date of birth in the request when available because many payers return errors without it. - Enter the patient's name exactly as written on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Visit [patient names](https://www.stedi.com/docs/healthcare/send-eligibility-checks#patient-names) for all best practices to avoid unnecessary failures. - **`dependent.additionalInformation`** (`object`): Additional identification numbers for the dependent. - **`dependent.additionalInformation.agencyClaimNumber`** (`string`): The agency claim number associated with the dependent. - **`dependent.additionalInformation.contractNumber`** (`string`): The contract number associated with the dependent's insurance plan. - **`dependent.additionalInformation.eligibilityCategory`** (`string`): The eligibility category for the dependent. - **`dependent.additionalInformation.groupNumber`** (`string`): The group number for the dependent's insurance plan. - **`dependent.additionalInformation.groupOrPolicyNumber`** (`string`): The group or policy number. - **`dependent.additionalInformation.identificationCardSerialNumber`** (`string`): The identification card serial number, when it differs from the member ID. - **`dependent.additionalInformation.identityCardNumber`** (`string`): The dependent's identity card number. Include this when this number differs from the subscriber's member ID. - **`dependent.additionalInformation.insurancePolicyNumber`** (`string`): The dependent's insurance policy number. - **`dependent.additionalInformation.issueNumber`** (`string`): The issue number for the dependent's insurance policy. - **`dependent.additionalInformation.mbi`** (`string`): The dependent's Medicare Beneficiary Identifier (MBI). The 270 carries it as the Health Insurance Claim (HIC) number, which CMS retired in favor of the MBI. - **`dependent.additionalInformation.medicalRecordId`** (`string`): The medical record identification number for the dependent. - **`dependent.additionalInformation.memberId`** (`string`): The dependent's member ID. Only set this when checking eligibility with a Property and Casualty payer and the patient identifier is a member ID that would be used in an 837 claim. If the dependent has their own member ID for a health plan, identify them in the `subscriber` object instead. - **`dependent.additionalInformation.patientAccountNumber`** (`string`): The patient account number for the dependent. - **`dependent.additionalInformation.planNetworkId`** (`string`): The plan network identification number for the dependent. - **`dependent.additionalInformation.planNumber`** (`string`): The plan number for the dependent's insurance plan. - **`dependent.additionalInformation.ssn`** (`string`): The dependent's Social Security Number (SSN). Don't use this for Federally-administered programs, such as Medicare. - **`dependent.address`** (`object`): The address of the entity. - **`dependent.address.addressLine1`** (`string`) (required): The first line of the address. - **`dependent.address.addressLine2`** (`string`): The second line of the address. - **`dependent.address.city`** (`string`) (required): The city. - **`dependent.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependent.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`dependent.birthSequenceNumber`** (`integer`): The number assigned to each family member born with the same birth date, such as twins or triplets. Use to indicate the birth order when there are multiple births associated with the provided birth date. Requires `relationToSubscriber`; the request is rejected when it is omitted. - **`dependent.dateOfBirth`** (`string`): The dependent's date of birth (DOB). We **strongly recommend** including the DOB in your request. Many payers need this information to identify the patient in their system and may immediately return an error when it's not provided. - **`dependent.gender`** (`string`): Code indicating the patient's gender. - Allowed values: `FEMALE`, `MALE` - **`dependent.name`** (`object`) (required): The dependent's name. - **`dependent.name.person`** (`object`) (required): The name of a dependent, who is always a person. - **`dependent.name.person.firstName`** (`string`) (required): The dependent's first name. - **`dependent.name.person.lastName`** (`string`) (required): The dependent's last name. **Don't** include the dependent's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`dependent.name.person.middleName`** (`string`): The dependent's middle name or middle initial. - **`dependent.name.person.suffix`** (`string`): The dependent's name suffix, such as Jr. or III. Only include the dependent's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`dependent.provider`** (`object`): Information about a provider's role and taxonomy. - **`dependent.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`dependent.provider.reference`** (`string`): The provider's taxonomy code. - **`dependent.relationToSubscriber`** (`string`): The dependent's relationship to the subscriber. - Allowed values: `SPOUSE`, `CHILD`, `OTHER_ADULT` - **`eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). - **`encounter`** (`object`): Details about the eligibility or benefit information you are requesting for the patient. - You can optionally include service type codes (STCs) or procedure codes to request benefits for specific services. - You can specify either a single service date or a date range using `dates.service`. The payer defaults to using the current date in their timezone if you don't include one. - When checking eligibility for today, omit the service date to ensure consistent behavior across payers. - We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers such as the Centers for Medicare and Medicaid Services (CMS) do support requests for dates further in the future - especially the next calendar month. Check the payer's documentation to determine their specific behavior. - **`encounter.additionalInformation`** (`object`): Additional information about the encounter. - **`encounter.additionalInformation.priorAuthNumber`** (`string`): The prior authorization number for a particular benefit or procedure. - **`encounter.additionalInformation.referralNumber`** (`string`): The referral number for a particular benefit or procedure. - **`encounter.dates`** (`object`): Dates of service for the eligibility inquiry. If you don't specify a service date, the payer defaults to using the current date in their timezone. - **`encounter.dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`encounter.dates.service.end`** (`string`): The inclusive end of the range. - **`encounter.dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`encounter.placeOfService`** (`object`): The type of facility where providers deliver the service. - **`encounter.placeOfService.code`** (`string`) (required): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`encounter.services`** (`array of EligibilityCheckRequestService objects`): One or more codes classifying the type of services for which you want to receive benefits information. - You can include service type codes (STCs) or procedure codes to request specific types of benefits information. For medical benefits, you'll almost always need an STC because most medical payers don't support procedure codes (CPT/HCPCS/CDT). For dental benefits, many payers support procedure codes. Visit [STCs and procedure codes](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes) for guidance on choosing the right codes. - We recommend including one service per request. Not all payers support all service type codes, not all payers support multiple codes in the same request, and payers aren't required to respond with exactly the same codes you sent. - If you don't specify any services, Stedi defaults to using service type code `30` (Health Benefit Plan Coverage). - **`encounter.services[].system`** (`string`) (required): Identifies the external code list that the specified procedure or service code belongs to. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`encounter.services[].value`** (`string`) (required): The service or procedure code value. - **`externalPatientId`** (`string`): A unique identifier for the patient that Stedi uses to identify and correlate historical eligibility checks for the same individual. We recommend including this value in all requests. - **`payerId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`payerName`** (`string`): The payer's name, such as Cigna or Aetna. - **`provider`** (`object`) (required): Information about the entity requesting the eligibility check. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. - We recommend omitting the provider's name. If omitted, Stedi uses the name associated with the provider's `npi` record in the National Plan and Provider Enumeration System (NPPES). We only recommend explicitly setting the provider name if you believe that the provider name on file with the payer differs from the provider name in NPPES. If you set it, provide it as either a person (with `name.person`) or an organization (with `name.organization`). - You must also provide an identifier - this is typically the provider's [National Provider Identifier](https://www.stedi.com/docs/healthcare/national-provider-identifier) (`npi`). If the provider doesn't have an NPI, you can supply an alternative, such as their `tin` or `ssn`. - Don't include additional properties, such as `tin` or `address`, unless they are specifically required or suggested by the payer. - **`provider.additionalInformation`** (`object`): Additional identification numbers for the provider. Only include when specifically required by a payer. - **`provider.additionalInformation.contractNumber`** (`string`): The provider's contract number. - **`provider.additionalInformation.electronicDevicePin`** (`string`): The provider's electronic device PIN. - **`provider.additionalInformation.facilityIdNumber`** (`string`): The ID number for the provider's facility. - **`provider.additionalInformation.facilityNetworkId`** (`string`): The provider's facility network identification number. - **`provider.additionalInformation.medicaidProviderNumber`** (`string`): The provider's Medicaid provider number. - **`provider.additionalInformation.medicareProviderNumber`** (`string`): The provider's Medicare provider number. - **`provider.additionalInformation.personalIdentificationNumber`** (`string`): The provider's personal identification number (PIN). For payers Medicaid California, AltaMed, and Kern Family Health Care, this property is **required** and should be the [password the provider uses to log in to the payer's portal](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#portal-credentials). Otherwise, this isn't commonly used. - **`provider.additionalInformation.planNetworkId`** (`string`): The provider's plan network identification number. - **`provider.additionalInformation.priorIdentifierNumber`** (`string`): The provider's prior identifier number. - **`provider.additionalInformation.stateLicense`** (`object`): The provider's state license information. - **`provider.additionalInformation.stateLicense.number`** (`string`) (required): The provider's state license number. - **`provider.additionalInformation.stateLicense.state`** (`string`): The state or province code that issued the license. - **`provider.additionalInformation.submitterId`** (`string`): The provider's submitter ID. - **`provider.additionalInformation.userId`** (`string`): The provider's user ID. - **`provider.address`** (`object`): The address of the entity. - **`provider.address.addressLine1`** (`string`) (required): The first line of the address. - **`provider.address.addressLine2`** (`string`): The second line of the address. - **`provider.address.city`** (`string`) (required): The city. - **`provider.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`provider.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`provider.ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. Only include when the payer requires it. - **`provider.name`** (`any`): The provider's name, as either a person or an organization. - **`provider.name (variant 1).person`** (`object`) (required): The name of a provider who is a person. - **`provider.name (variant 1).person.firstName`** (`string`): The provider's first name. - **`provider.name (variant 1).person.lastName`** (`string`): The provider's last name. If you include `firstName` but leave out `lastName`, Stedi treats the name as missing and fills in the whole name from the provider's NPPES record when one is available. - **`provider.name (variant 1).person.middleName`** (`string`): The provider's middle name or middle initial. - **`provider.name (variant 1).person.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`provider.name (variant 2).organization`** (`string`) (required): An organization's business name. - **`provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). All healthcare providers eligible for an NPI must provide this identifier. Some non-traditional providers such as transportation services, durable medical equipment (DME) suppliers, or alternative medicine practitioners can't receive an NPI. If the provider doesn't have an NPI, payers virtually never support requests with alternate IDs. In the rare circumstance that a payer has instructed you to use an alternate ID, the payer will typically require you to supply either their `tin` or `ssn` instead. - **`provider.pharmacyProcessorNumber`** (`string`): The provider's pharmacy processor number. Only include when specifically instructed by a payer - for example, when the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - **`provider.provider`** (`object`): Information about a provider's role and taxonomy. - **`provider.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`provider.provider.reference`** (`string`): The provider's taxonomy code. - **`provider.serviceProviderNumber`** (`string`): The provider's service provider number. Only include when specifically instructed by a payer - for example, when the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - **`provider.ssn`** (`string`): The provider's Social Security Number (SSN). - Only include when specifically instructed by a payer - for example, if the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - If the payer has instructed you to send an EIN but the provider operates using their SSN, use `provider.tin` instead of this field. - Don't use this for Federally-administered programs, such as Medicare. - **`provider.tin`** (`string`): The provider's Federal Taxpayer Identification Number. This is typically the provider's EIN (Employer Identification Number), but you may use the provider's SSN if the provider doesn't have an EIN. Only include if the payer requires it. - **`provider.type`** (`string`): The type of provider making the request. - Allowed values: `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `HOSPITAL`, `FACILITY`, `GATEWAY_PROVIDER`, `PLAN_SPONSOR` - **`subscriber`** (`object`) (required): The primary policyholder for the insurance plan _or_ a dependent with a unique member ID. If a dependent has a unique member ID, include their information here and leave `dependent` empty. - At a minimum, our API requires that you supply at least one of these fields in the request: `memberId`, `dateOfBirth`, or `name.person.lastName`. However, each payer has different requirements, so you should supply the fields necessary for each payer to identify the subscriber in their system. - When you provide all four of `memberId`, `dateOfBirth`, `name.person.firstName`, and `name.person.lastName`, payers must return a response if the member is in their database. Some payers may be able to search with less information, but this varies by payer. - We recommend always including the patient's member ID when possible. - Enter the patient's name exactly as written on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Visit [patient names](https://www.stedi.com/docs/healthcare/send-eligibility-checks#patient-names) for all best practices to avoid unnecessary failures. - **`subscriber.additionalInformation`** (`object`): Additional identification numbers for the subscriber. Use this object when you need to provide an identification number other than or in addition to the subscriber's member ID. For example, you may provide the patient account number. Don't include the health insurance claim number or the medicaid recipient ID number here unless they are different from the member ID. - **`subscriber.additionalInformation.agencyClaimNumber`** (`string`): The agency claim number associated with the subscriber. - **`subscriber.additionalInformation.caseNumber`** (`string`): The case number associated with the subscriber. - **`subscriber.additionalInformation.contractNumber`** (`string`): The contract number associated with the subscriber's insurance plan. - **`subscriber.additionalInformation.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`subscriber.additionalInformation.groupOrPolicyNumber`** (`string`): The group or policy number. - **`subscriber.additionalInformation.identificationCardSerialNumber`** (`string`): The identification card serial number, when it differs from the member ID. - **`subscriber.additionalInformation.identityCardNumber`** (`string`): The subscriber's identity card number. Include this property when this number differs from the subscriber's member ID. This is common in Medicaid. - **`subscriber.additionalInformation.insurancePolicyNumber`** (`string`): The subscriber's insurance policy number. - **`subscriber.additionalInformation.mbi`** (`string`): The subscriber's Medicare Beneficiary Identifier (MBI). The 270 carries it as the Health Insurance Claim (HIC) number, which CMS retired in favor of the MBI. Don't include it unless it differs from the member ID. - **`subscriber.additionalInformation.medicaidRecipientId`** (`string`): The Medicaid Recipient Identification Number. You can provide this number to identify the subscriber when it is the primary number the payer knows a member by (such as for Medicare or Medicaid). Don't supply this value unless it differs from the `memberId`. - **`subscriber.additionalInformation.medicalRecordId`** (`string`): The medical record identification number for the subscriber. - **`subscriber.additionalInformation.patientAccountNumber`** (`string`): The patient account number for the subscriber. - **`subscriber.additionalInformation.planNetworkId`** (`string`): The plan network identification number for the subscriber. - **`subscriber.additionalInformation.planNumber`** (`string`): The plan number for the subscriber's insurance plan. - **`subscriber.additionalInformation.ssn`** (`string`): The subscriber's Social Security Number (SSN). Many commercial and government payers ignore this property due to concerns about member privacy. However, some Medicaid programs support alternative searches using the patient's Social Security Number, instead of the member ID. - **`subscriber.address`** (`object`): The subscriber's address. When providing address information: - `addressLine1` and `city` are **required** for standard eligibility checks and MBI lookups with SSN. We also recommend including `state` for member identification. - When performing an [MBI lookup without SSN](https://www.stedi.com/docs/healthcare/mbi-lookup) (Payer ID: `MBILUNOSSN`), only `state` is required. You can omit `addressLine1` and `city`. - **`subscriber.address.addressLine1`** (`string`): The first line of the address. Required for all payers except payer ID `MBILUNOSSN`. - **`subscriber.address.addressLine2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. Required for all payers except payer ID `MBILUNOSSN`. - **`subscriber.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.address.state`** (`string`): The US state or Canadian province code. Required for payer ID `MBILUNOSSN`. - **`subscriber.birthSequenceNumber`** (`integer`): The number assigned to each family member born with the same birth date, such as twins or triplets. Use to indicate the birth order when there are multiple births associated with the provided birth date. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`subscriber.gender`** (`string`): Code indicating the patient's gender. - Allowed values: `FEMALE`, `MALE` - **`subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. - **`subscriber.name`** (`any`): The subscriber's name, as either a person or an organization. - **`subscriber.name (variant 1).person`** (`object`) (required): The name of a subscriber who is a person. - **`subscriber.name (variant 1).person.firstName`** (`string`): The subscriber's first name. - **`subscriber.name (variant 1).person.lastName`** (`string`): The subscriber's last name. **Don't** include the subscriber's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`subscriber.name (variant 1).person.middleName`** (`string`): The subscriber's middle name or middle initial. - **`subscriber.name (variant 1).person.suffix`** (`string`): The subscriber's name suffix, such as Jr. or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`subscriber.name (variant 2).organization`** (`string`) (required): An organization's business name. - **`subscriber.provider`** (`object`): Information about a provider's role and taxonomy. - **`subscriber.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`subscriber.provider.reference`** (`string`): The provider's taxonomy code. **Example:** ```json { "encounter": { "services": [ { "system": "STC", "value": "30" } ] }, "payerId": "61101", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "dateOfBirth": "1975-05-05", "memberId": "HUMANA123", "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } } } ``` ### Responses #### 200 CreateEligibilityCheck 200 response **Schema:** `CreateEligibilityCheckResponseContent` **Properties:** - **`dependent`** (`object`): Information about the dependent from the eligibility check request. Note that the payer may return the dependent in the subscriber object instead. When present, this object will always include the dependent's name for identification, but many payers also include the date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the dependent's full legal name. - **`dependent.additionalInformation`** (`object`): Additional identifying information about the dependent. - **`dependent.additionalInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`dependent.additionalInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`dependent.additionalInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`dependent.additionalInformation.eligibilityCategory`** (`string`): The eligibility category for the dependent. - **`dependent.additionalInformation.familyUnitNumber`** (`string`): The family unit number. - **`dependent.additionalInformation.group`** (`object`): Additional information with description. - **`dependent.additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`dependent.additionalInformation.group.number`** (`string`) (required): The identification number. - **`dependent.additionalInformation.groupOrPolicyNumber`** (`string`): The group or policy number. - **`dependent.additionalInformation.identificationCardSerialNumber`** (`string`): Used when the identification card has a number in addition to the member ID. - **`dependent.additionalInformation.identityCardNumber`** (`string`): The identity card number. Present when this number differs from the member ID. - **`dependent.additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`dependent.additionalInformation.issueNumber`** (`string`): The issue number. - **`dependent.additionalInformation.mbi`** (`string`): The patient's Medicare Beneficiary Identifier (MBI). If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`dependent.additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`dependent.additionalInformation.medicalRecordId`** (`string`): The medical record identification number. - **`dependent.additionalInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`dependent.additionalInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`dependent.additionalInformation.plan`** (`object`): Additional information with description. - **`dependent.additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`dependent.additionalInformation.plan.number`** (`string`) (required): The identification number. - **`dependent.additionalInformation.planNetwork`** (`object`): Additional information with description. - **`dependent.additionalInformation.planNetwork.name`** (`string`): The name or description associated with `number`. - **`dependent.additionalInformation.planNetwork.number`** (`string`) (required): The identification number. - **`dependent.additionalInformation.priorIdentifierNumber`** (`string`): The prior identifier number. - **`dependent.additionalInformation.ssn`** (`string`): The patient's Social Security Number (SSN). - **`dependent.address`** (`object`): The address of the entity. - **`dependent.address.addressLine1`** (`string`): The first line of the address. - **`dependent.address.addressLine2`** (`string`): The second line of the address. - **`dependent.address.city`** (`string`): The city. - **`dependent.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependent.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`dependent.birthSequenceNumber`** (`integer`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`dependent.dateOfBirth`** (`string`): The patient's date of birth as an ISO 8601 `YYYY-MM-DD` string. For example, `1985-03-15` represents March 15, 1985. - **`dependent.dates`** (`object`): Contains the dates associated with patient attributes, as ISO 8601 date ranges. These provide temporal context for patient-specific data and eligibility periods. - **`dependent.dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.added.end`** (`string`): The inclusive end of the range. - **`dependent.dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.admission.end`** (`string`): The inclusive end of the range. - **`dependent.dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.certification`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.certification.end`** (`string`): The inclusive end of the range. - **`dependent.dates.certification.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.cobra`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.cobra.end`** (`string`): The inclusive end of the range. - **`dependent.dates.cobra.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.dateOfDeath`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.dateOfDeath.end`** (`string`): The inclusive end of the range. - **`dependent.dates.dateOfDeath.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`dependent.dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.discharge.end`** (`string`): The inclusive end of the range. - **`dependent.dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.effectiveDateOfChange`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.effectiveDateOfChange.end`** (`string`): The inclusive end of the range. - **`dependent.dates.effectiveDateOfChange.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.eligibility.end`** (`string`): The inclusive end of the range. - **`dependent.dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.enrollment`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.enrollment.end`** (`string`): The inclusive end of the range. - **`dependent.dates.enrollment.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.issue`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.issue.end`** (`string`): The inclusive end of the range. - **`dependent.dates.issue.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.plan.end`** (`string`): The inclusive end of the range. - **`dependent.dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.policy`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.policy.end`** (`string`): The inclusive end of the range. - **`dependent.dates.policy.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.premiumPaidToDate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.premiumPaidToDate.end`** (`string`): The inclusive end of the range. - **`dependent.dates.premiumPaidToDate.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.service.end`** (`string`): The inclusive end of the range. - **`dependent.dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.status.end`** (`string`): The inclusive end of the range. - **`dependent.dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.gender`** (`string`): Code indicating the patient's gender. Payers may sometimes return other non-compliant values. - Allowed values: `FEMALE`, `MALE`, `UNKNOWN` - **`dependent.maintenance`** (`object`): Information indicating whether the payer signaled that the patient's identifying information differs from what you submitted. - **`dependent.maintenance.indicator`** (`string`): Indicates whether the payer signaled that the patient's identifying information differs from what you submitted. - Allowed values: `NONE`, `PAYER_INDICATED` - **`dependent.name`** (`object`) (required): A person's name. - **`dependent.name.person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`dependent.name.person.firstName`** (`string`): The person's first name. - **`dependent.name.person.lastName`** (`string`): The person's last name. - **`dependent.name.person.middleName`** (`string`): The person's middle name or initial. - **`dependent.name.person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`dependent.provider`** (`object`): Information about a provider associated with the related entity. - **`dependent.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`dependent.provider.reference`** (`string`): The provider's taxonomy code. - **`dependent.relationToSubscriber`** (`string`): The dependent's relationship to the subscriber. Payers may sometimes return other non-compliant values. - Allowed values: `SPOUSE`, `CHILD`, `EMPLOYEE`, `UNKNOWN`, `ORGAN_DONOR`, `CADAVER_DONOR`, `LIFE_PARTNER`, `OTHER_RELATIONSHIP` - **`eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`errors`** (`array of EligibilityCheckResponseError objects`): `AAA` rejection errors from the payer. [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) specify the reasons for the rejection and any recommended follow-up actions. - **`errors[].code`** (`string`) (required): The AAA reject reason code. - **`errors[].description`** (`string`) (required): The human-readable description of the error. - **`errors[].followupAction`** (`string`) (required): The recommended follow-up action. - **`errors[].location`** (`string`) (required): The location in the 271 response where an error occurred. Payers may sometimes return other non-compliant values. - Allowed values: `ENVELOPE`, `PAYER`, `PROVIDER`, `SUBSCRIBER`, `SUBSCRIBER_BENEFITS`, `DEPENDENT`, `DEPENDENT_BENEFITS` - **`errors[].possibleResolutions`** (`string`): Detailed guidance on possible ways to resolve the error. - **`id`** (`string`) (required): A globally unique identifier for this eligibility check across all Stedi accounts. It's formatted as `ec_`. For example: `ec_550e8400-e29b-41d4-a716-446655440000`. You can use this ID to track this eligibility check and to construct deep links to eligibility checks in the Stedi portal. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.outboundTraceId`** (`string`): The transaction identifier Stedi assigns to the outbound request's `BHT03` element. Although this is a unique identifier, we recommend using `id` instead to identify and track eligibility checks. An eligibility check's `id` is guaranteed to be globally unique, and you can use it to deep link to the eligibility check's results within the Stedi portal. - **`meta.subscriberTraceNumbers`** (`array of EligibilityCheckSubscriberTraceNumber objects`): A unique identifier the payer may assign to the transaction. Stedi doesn't support setting a subscriber trace number in the eligibility check request because there is no need to include a trace number for real-time queries. - **`meta.subscriberTraceNumbers[].originatingCompanyIdentifier`** (`string`): The identifier of the organization that assigned the trace number. - **`meta.subscriberTraceNumbers[].referenceIdentification`** (`string`): The unique trace number assigned to the transaction. - **`meta.subscriberTraceNumbers[].secondaryReferenceIdentification`** (`string`): Identifies a subdivision within the organization that assigned the trace number. - **`meta.subscriberTraceNumbers[].type`** (`string`): Which transaction a trace number refers to. Payers may sometimes return other non-compliant values. - Allowed values: `CURRENT_TRANSACTION`, `REFERENCED_TRANSACTION` - **`meta.traceId`** (`string`): The transaction identifier from the response's `BHT03` element. Matches the request's `BHT03` if provided, otherwise matches the Stedi-generated `outboundTraceId`. - **`payer`** (`object`) (required): Information about the payer providing the benefits information. The response will always include the payer's business name and an identifier, such as the payer's tax ID. Most payers also include contact information. - **`payer.contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`payer.contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`payer.contacts[].emails`** (`array of strings`): The contact's email addresses. - **`payer.contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`payer.contacts[].name`** (`string`): The name of the contact person. - **`payer.contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`payer.contacts[].urls`** (`array of strings`): The contact's URLs. - **`payer.ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`payer.etin`** (`string`): Electronic Transmitter Identification Number. - **`payer.identification`** (`string`): Typically the identification the payer reported for itself in the 271 response (`NM109` with the `PI` qualifier). This value comes from the payer and may not match a [Stedi Payer Network](https://www.stedi.com/healthcare/network) ID; use the root-level `payerId` for the canonical payer ID. - **`payer.naicId`** (`string`): National Association of Insurance Commissioners Identification - **`payer.name`** (`any`): A name that is either a person or an organization. - **`payer.name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`payer.name (variant 1).person.firstName`** (`string`): The person's first name. - **`payer.name (variant 1).person.lastName`** (`string`): The person's last name. - **`payer.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`payer.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`payer.name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`payer.tin`** (`string`): The Federal Taxpayer Identification Number. - **`payer.type`** (`string`) (required): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `GATEWAY_PROVIDER`, `PLAN_SPONSOR`, `PAYER` - **`payerId`** (`string`): The primary payer ID from the [Stedi Payer Network](https://www.stedi.com/healthcare/network). This ID is consistent across eligibility and claims systems and matches the payer ID printed on the member's ID card. You can use it as the `payerId` in subsequent eligibility check requests. - **`plans`** (`array of EligibilityCheckPlan objects`): The patient's insurance plans, grouped by plan name. Each plan contains the benefits that apply to the patient. - **`plans[].benefits`** (`object`) (required): Benefit information from the payer, organized into categories like cost-sharing (co-insurance, deductibles, copayments), coverage details (exclusions, limitations), and eligibility statuses. - **`plans[].benefits.benefitDescription`** (`array of EligibilityCheckBenefitDescription objects`): A list of free-text benefit descriptions from the payer. Payers sometimes use this type to communicate information that's difficult to capture elsewhere in the response. The description is included as free text in `messages` or identifiers in `additionalInformation`. - **`plans[].benefits.benefitDescription[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.benefitDescription[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.benefitDescription[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.benefitDescription[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.benefitDescription[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.benefitDescription[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.benefitDescription[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDescription[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDescription[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.benefitDescription[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.benefitDescription[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.benefitDescription[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.benefitDescription[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.benefitDescription[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.benefitDescription[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.benefitDescription[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDescription[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDescription[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.benefitDescription[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.benefitDescription[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.benefitDescription[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.benefitDescription[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.benefitDescription[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.benefitDescription[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.benefitDescription[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.benefitDescription[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.benefitDescription[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.benefitDescription[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.benefitDescription[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.benefitDescription[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.benefitDescription[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.benefitDescription[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.benefitDescription[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.benefitDescription[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.benefitDescription[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.benefitDescription[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.benefitDescription[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.benefitDescription[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.benefitDescription[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.benefitDescription[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.benefitDescription[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.benefitDescription[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.benefitDescription[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.benefitDescription[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.benefitDescription[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.benefitDescription[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.benefitDescription[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.benefitDescription[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.benefitDescription[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.benefitDescription[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.benefitDescription[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.benefitDescription[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.benefitDescription[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.benefitDescription[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.benefitDescription[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.benefitDescription[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.benefitDescription[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.benefitDescription[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.benefitDescription[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.benefitDescription[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.benefitDescription[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.benefitDescription[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDescription[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.benefitDescription[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDescription[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDescription[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDescription[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDescription[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDescription[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDescription[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.benefitDescription[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.benefitDescription[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.benefitDisclaimer`** (`array of EligibilityCheckBenefitDisclaimer objects`): A list of disclaimers from the payer. A legal or advisory disclaimer attached to the benefit information. The X12 standard discourages use of this type, but many commercial payers still send disclaimers. When present, the disclaimer text arrives in `messages`, and there should be only one disclaimer per individual response. - **`plans[].benefits.benefitDisclaimer[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.benefitDisclaimer[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.benefitDisclaimer[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.benefitDisclaimer[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.benefitDisclaimer[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.benefitDisclaimer[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.benefitDisclaimer[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.benefitDisclaimer[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.benefitDisclaimer[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.benefitDisclaimer[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.benefitDisclaimer[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.benefitDisclaimer[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.benefitDisclaimer[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.benefitDisclaimer[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.benefitDisclaimer[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.benefitDisclaimer[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.benefitDisclaimer[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.benefitDisclaimer[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.benefitDisclaimer[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.benefitDisclaimer[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.benefitDisclaimer[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.benefitDisclaimer[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.benefitDisclaimer[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.benefitDisclaimer[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDisclaimer[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.benefitDisclaimer[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDisclaimer[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDisclaimer[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDisclaimer[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDisclaimer[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDisclaimer[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDisclaimer[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.benefitDisclaimer[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.benefitDisclaimer[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.cannotProcess`** (`array of EligibilityCheckCannotProcess objects`): A list of entries indicating the payer couldn't process your request. Indicates that the payer couldn't process your request. A common cause is requesting benefits information for a service type or procedure code the payer doesn't support. - **`plans[].benefits.cannotProcess[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.cannotProcess[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.cannotProcess[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.cannotProcess[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.cannotProcess[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.cannotProcess[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.cannotProcess[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cannotProcess[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.cannotProcess[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.cannotProcess[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.cannotProcess[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.cannotProcess[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.cannotProcess[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.cannotProcess[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.cannotProcess[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.cannotProcess[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cannotProcess[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.cannotProcess[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.cannotProcess[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.cannotProcess[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.cannotProcess[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.cannotProcess[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.cannotProcess[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.cannotProcess[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.cannotProcess[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.cannotProcess[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.cannotProcess[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.cannotProcess[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.cannotProcess[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.cannotProcess[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.cannotProcess[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.cannotProcess[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.cannotProcess[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.cannotProcess[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.cannotProcess[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.cannotProcess[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.cannotProcess[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.cannotProcess[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.cannotProcess[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.cannotProcess[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.cannotProcess[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.cannotProcess[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.cannotProcess[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.cannotProcess[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.cannotProcess[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.cannotProcess[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.cannotProcess[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.cannotProcess[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.cannotProcess[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.cannotProcess[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.cannotProcess[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.cannotProcess[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.cannotProcess[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.cannotProcess[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.cannotProcess[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.cannotProcess[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.cannotProcess[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.cannotProcess[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.cannotProcess[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.cannotProcess[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.cannotProcess[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.cannotProcess[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cannotProcess[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.cannotProcess[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cannotProcess[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cannotProcess[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cannotProcess[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cannotProcess[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cannotProcess[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cannotProcess[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.cannotProcess[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.cannotProcess[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.cardReportedStolen`** (`array of EligibilityCheckCardReportedStolen objects`): A list of entries indicating the patient's card has been reported lost or stolen. This typically means that the payer has flagged the patient's member ID to prevent identity theft. The patient may still have active coverage, but you likely won't be able to run transactions with the patient's information until they resolve the issue. - **`plans[].benefits.cardReportedStolen[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.cardReportedStolen[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.cardReportedStolen[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.cardReportedStolen[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.cardReportedStolen[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.cardReportedStolen[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cardReportedStolen[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.cardReportedStolen[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.cardReportedStolen[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.cardReportedStolen[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.cardReportedStolen[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.cardReportedStolen[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cardReportedStolen[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.cardReportedStolen[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.cardReportedStolen[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.cardReportedStolen[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.cardReportedStolen[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.cardReportedStolen[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.cardReportedStolen[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.cardReportedStolen[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.cardReportedStolen[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.cardReportedStolen[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.cardReportedStolen[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.cardReportedStolen[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.cardReportedStolen[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.cardReportedStolen[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.cardReportedStolen[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.cardReportedStolen[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.cardReportedStolen[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.cardReportedStolen[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.cardReportedStolen[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.cardReportedStolen[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.cardReportedStolen[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.cardReportedStolen[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.cardReportedStolen[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.cardReportedStolen[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.cardReportedStolen[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.cardReportedStolen[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.cardReportedStolen[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.cardReportedStolen[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.cardReportedStolen[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.cardReportedStolen[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.cardReportedStolen[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cardReportedStolen[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.cardReportedStolen[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cardReportedStolen[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cardReportedStolen[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cardReportedStolen[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cardReportedStolen[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cardReportedStolen[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cardReportedStolen[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.cardReportedStolen[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.cardReportedStolen[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.coInsurance`** (`array of EligibilityCheckCoInsurance objects`): A list of co-insurance benefit entries from the payer. The `percent` is the patient's share of costs, expressed as a decimal (such as `0.8` for 80%). The decimal precision reflects what the payer sent. A value of `0` indicates the payer reported no co-insurance responsibility. - **`plans[].benefits.coInsurance[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.coInsurance[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.coInsurance[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.coInsurance[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.coInsurance[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.coInsurance[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.coInsurance[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coInsurance[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.coInsurance[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.coInsurance[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.coInsurance[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.coInsurance[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.coInsurance[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.coInsurance[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.coInsurance[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.coInsurance[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coInsurance[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.coInsurance[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.coInsurance[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.coInsurance[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.coInsurance[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.coInsurance[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.coInsurance[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.coInsurance[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.coInsurance[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.coInsurance[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.coInsurance[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.coInsurance[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.coInsurance[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.coInsurance[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.coInsurance[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.coInsurance[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.coInsurance[].percent`** (`string`) (required): The percentage value for this benefit, expressed as a decimal (e.g., 0.80 for 80%). - **`plans[].benefits.coInsurance[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.coInsurance[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.coInsurance[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.coInsurance[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.coInsurance[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.coInsurance[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.coInsurance[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.coInsurance[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.coInsurance[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.coInsurance[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.coInsurance[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.coInsurance[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.coInsurance[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.coInsurance[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.coInsurance[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.coInsurance[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.coInsurance[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.coInsurance[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.coInsurance[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.coInsurance[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.coInsurance[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.coInsurance[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.coInsurance[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.coInsurance[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.coInsurance[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.coInsurance[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.coInsurance[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.coInsurance[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.coInsurance[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.coInsurance[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.coInsurance[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.coInsurance[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.coInsurance[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coInsurance[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.coInsurance[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coInsurance[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coInsurance[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coInsurance[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coInsurance[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coInsurance[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coInsurance[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.coInsurance[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.coInsurance[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.coInsurance[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.coPayment`** (`array of EligibilityCheckCoPayment objects`): A list of copayment benefit entries from the payer. The `amount` is the fixed amount the patient pays for a service. The decimal precision reflects what the payer sent (for example, `25.0` or `40`). - **`plans[].benefits.coPayment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.coPayment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.coPayment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.coPayment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.coPayment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.coPayment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.coPayment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coPayment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.coPayment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.coPayment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.coPayment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.coPayment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.coPayment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.coPayment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.coPayment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.coPayment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coPayment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.coPayment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.coPayment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.coPayment[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.coPayment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.coPayment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.coPayment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.coPayment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.coPayment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.coPayment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.coPayment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.coPayment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.coPayment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.coPayment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.coPayment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.coPayment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.coPayment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.coPayment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.coPayment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.coPayment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.coPayment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.coPayment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.coPayment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.coPayment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.coPayment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.coPayment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.coPayment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.coPayment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.coPayment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.coPayment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.coPayment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.coPayment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.coPayment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.coPayment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.coPayment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.coPayment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.coPayment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.coPayment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.coPayment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.coPayment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.coPayment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.coPayment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.coPayment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.coPayment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.coPayment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.coPayment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.coPayment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.coPayment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.coPayment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.coPayment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.coPayment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.coPayment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.coPayment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.coPayment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coPayment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.coPayment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coPayment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coPayment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coPayment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coPayment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coPayment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coPayment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.coPayment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.coPayment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.coPayment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.contactFollowingEntityForInformation`** (`array of EligibilityCheckContactFollowingEntityForInformation objects`): A list of entries directing you to contact another entity for benefit information. Indicates that the payer can't supply the information you requested and is directing you to another entity. The entity's information is listed in the `relatedEntities` array. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.contactFollowingEntityForInformation[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.contactFollowingEntityForInformation[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.contactFollowingEntityForInformation[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.contactFollowingEntityForInformation[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.contactFollowingEntityForInformation[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.contactFollowingEntityForInformation[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.contactFollowingEntityForInformation[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.contactFollowingEntityForInformation[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.contactFollowingEntityForInformation[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.contactFollowingEntityForInformation[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.contactFollowingEntityForInformation[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.contactFollowingEntityForInformation[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.contactFollowingEntityForInformation[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.contactFollowingEntityForInformation[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.contactFollowingEntityForInformation[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.contactFollowingEntityForInformation[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.contactFollowingEntityForInformation[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.contactFollowingEntityForInformation[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.contactFollowingEntityForInformation[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.costContainment`** (`array of EligibilityCheckCostContainment objects`): A list of cost containment benefit entries from the payer. Cost containment refers to rules a health plan may have in place to control the cost of care. This benefit is typically included when the patient has Medicaid coverage. The `amount` represents the total the patient pays out-of-pocket before benefits begin. The decimal precision reflects what the payer sent (for example, `500.0` or `500`). - **`plans[].benefits.costContainment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.costContainment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.costContainment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.costContainment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.costContainment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.costContainment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.costContainment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.costContainment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.costContainment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.costContainment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.costContainment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.costContainment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.costContainment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.costContainment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.costContainment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.costContainment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.costContainment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.costContainment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.costContainment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.costContainment[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.costContainment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.costContainment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.costContainment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.costContainment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.costContainment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.costContainment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.costContainment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.costContainment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.costContainment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.costContainment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.costContainment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.costContainment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.costContainment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.costContainment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.costContainment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.costContainment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.costContainment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.costContainment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.costContainment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.costContainment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.costContainment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.costContainment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.costContainment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.costContainment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.costContainment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.costContainment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.costContainment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.costContainment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.costContainment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.costContainment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.costContainment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.costContainment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.costContainment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.costContainment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.costContainment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.costContainment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.costContainment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.costContainment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.costContainment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.costContainment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.costContainment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.costContainment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.costContainment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.costContainment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.costContainment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.costContainment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.costContainment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.costContainment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.costContainment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.costContainment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.costContainment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.costContainment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.costContainment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.costContainment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.costContainment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.costContainment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.costContainment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.costContainment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.costContainment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.costContainment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.costContainment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.coverageBasis`** (`array of EligibilityCheckCoverageBasis objects`): A list of coverage basis entries from the payer. Describes the financial basis of the patient's health plan or eligibility for enrollment. For example, payers may use this type to indicate that a plan is fully insured, meaning the payer assumes full financial responsibility for medical claims. Payers may also use this type to indicate carve-out benefits, such as when the patient is enrolled in state-managed health programs, or to explain why a member was allowed to enroll in the plan (such as age range or having a disability). The detail is usually included as free text in `messages` or identifiers in `additionalInformation`. - **`plans[].benefits.coverageBasis[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.coverageBasis[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.coverageBasis[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.coverageBasis[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.coverageBasis[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.coverageBasis[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.coverageBasis[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coverageBasis[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.coverageBasis[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.coverageBasis[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.coverageBasis[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.coverageBasis[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.coverageBasis[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.coverageBasis[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.coverageBasis[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.coverageBasis[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coverageBasis[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.coverageBasis[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.coverageBasis[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.coverageBasis[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.coverageBasis[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.coverageBasis[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.coverageBasis[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.coverageBasis[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.coverageBasis[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.coverageBasis[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.coverageBasis[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.coverageBasis[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.coverageBasis[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.coverageBasis[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.coverageBasis[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.coverageBasis[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.coverageBasis[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.coverageBasis[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.coverageBasis[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.coverageBasis[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.coverageBasis[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.coverageBasis[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.coverageBasis[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.coverageBasis[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.coverageBasis[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.coverageBasis[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.coverageBasis[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.coverageBasis[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.coverageBasis[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.coverageBasis[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.coverageBasis[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.coverageBasis[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.coverageBasis[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.coverageBasis[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.coverageBasis[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.coverageBasis[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.coverageBasis[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.coverageBasis[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.coverageBasis[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.coverageBasis[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.coverageBasis[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.coverageBasis[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.coverageBasis[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.coverageBasis[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.coverageBasis[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.coverageBasis[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coverageBasis[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.coverageBasis[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coverageBasis[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coverageBasis[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coverageBasis[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coverageBasis[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coverageBasis[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coverageBasis[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.coverageBasis[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.coverageBasis[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.deductible`** (`array of EligibilityCheckDeductible objects`): A list of deductible benefit entries from the payer. The `amount` is what the patient must pay before the plan begins covering costs. The decimal precision reflects what the payer sent (for example, `1500.0` or `1000`). Check `timePeriod` to determine what the amount represents. A calendar-year deductible is the patient's total for the year, while a remaining deductible is the amount still owed before the plan pays. - **`plans[].benefits.deductible[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.deductible[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.deductible[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.deductible[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.deductible[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.deductible[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.deductible[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.deductible[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.deductible[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.deductible[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.deductible[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.deductible[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.deductible[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.deductible[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.deductible[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.deductible[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.deductible[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.deductible[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.deductible[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.deductible[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.deductible[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.deductible[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.deductible[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.deductible[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.deductible[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.deductible[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.deductible[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.deductible[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.deductible[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.deductible[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.deductible[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.deductible[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.deductible[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.deductible[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.deductible[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.deductible[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.deductible[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.deductible[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.deductible[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.deductible[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.deductible[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.deductible[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.deductible[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.deductible[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.deductible[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.deductible[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.deductible[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.deductible[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.deductible[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.deductible[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.deductible[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.deductible[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.deductible[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.deductible[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.deductible[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.deductible[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.deductible[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.deductible[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.deductible[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.deductible[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.deductible[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.deductible[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.deductible[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.deductible[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.deductible[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.deductible[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.deductible[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.deductible[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.deductible[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.deductible[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.deductible[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.deductible[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.deductible[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.deductible[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.deductible[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.deductible[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.deductible[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.deductible[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.deductible[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.deductible[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.deductible[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.exclusions`** (`array of EligibilityCheckExclusion objects`): A list of services or conditions the plan excludes from coverage. An exclusion is a service or condition the plan doesn't cover for any patient. This is different from a `nonCovered` entry, which reports that this patient doesn't have coverage for a specific service you submitted in the request. - **`plans[].benefits.exclusions[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.exclusions[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.exclusions[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.exclusions[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.exclusions[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.exclusions[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.exclusions[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.exclusions[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.exclusions[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.exclusions[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.exclusions[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.exclusions[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.exclusions[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.exclusions[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.exclusions[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.exclusions[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.exclusions[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.exclusions[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.exclusions[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.exclusions[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.exclusions[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.exclusions[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.exclusions[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.exclusions[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.exclusions[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.exclusions[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.exclusions[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.exclusions[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.exclusions[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.exclusions[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.exclusions[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.exclusions[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.exclusions[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.exclusions[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.exclusions[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.exclusions[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.exclusions[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.exclusions[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.exclusions[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.exclusions[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.exclusions[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.exclusions[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.exclusions[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.exclusions[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.exclusions[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.exclusions[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.exclusions[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.exclusions[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.exclusions[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.exclusions[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.exclusions[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.exclusions[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.exclusions[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.exclusions[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.exclusions[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.exclusions[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.exclusions[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.exclusions[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.exclusions[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.exclusions[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.exclusions[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.exclusions[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.exclusions[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.exclusions[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.exclusions[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.exclusions[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.exclusions[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.exclusions[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.exclusions[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.exclusions[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.exclusions[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.exclusions[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.exclusions[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.exclusions[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.exclusions[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.exclusions[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.exclusions[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.exclusions[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.healthCareFacility`** (`array of EligibilityCheckHealthCareFacility objects`): A list of health care facility information relevant to the patient's benefits. These typically indicate an institution or provider network the patient is required or expected to use. The facility's information is available in the `relatedEntities` array. Rarely returned. - **`plans[].benefits.healthCareFacility[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.healthCareFacility[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.healthCareFacility[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.healthCareFacility[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.healthCareFacility[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.healthCareFacility[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.healthCareFacility[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.healthCareFacility[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.healthCareFacility[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.healthCareFacility[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.healthCareFacility[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.healthCareFacility[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.healthCareFacility[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.healthCareFacility[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.healthCareFacility[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.healthCareFacility[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.healthCareFacility[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.healthCareFacility[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.healthCareFacility[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.healthCareFacility[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.healthCareFacility[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.healthCareFacility[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.healthCareFacility[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.healthCareFacility[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.healthCareFacility[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.healthCareFacility[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.healthCareFacility[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.healthCareFacility[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.healthCareFacility[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.healthCareFacility[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.healthCareFacility[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.healthCareFacility[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.healthCareFacility[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.healthCareFacility[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.healthCareFacility[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.healthCareFacility[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.healthCareFacility[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.healthCareFacility[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.healthCareFacility[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.healthCareFacility[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.healthCareFacility[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.healthCareFacility[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.healthCareFacility[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.healthCareFacility[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.healthCareFacility[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.healthCareFacility[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.healthCareFacility[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.healthCareFacility[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.healthCareFacility[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.healthCareFacility[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.healthCareFacility[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.healthCareFacility[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.healthCareFacility[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.healthCareFacility[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.healthCareFacility[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.healthCareFacility[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.healthCareFacility[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.healthCareFacility[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.healthCareFacility[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.healthCareFacility[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.healthCareFacility[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.healthCareFacility[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.healthCareFacility[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.healthCareFacility[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.healthCareFacility[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.healthCareFacility[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.healthCareFacility[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.healthCareFacility[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.healthCareFacility[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries`** (`object`): Benefit entries that Stedi marked as invalid. Stedi marks entries when they're missing required data, like a co-insurance benefit without a percentage or a deductible without an amount. Stedi also marks entries when they have unexpected data, like a co-payment with a percentage instead of an amount. - **`plans[].benefits.invalidEntries.coInsurance`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid co-insurance entries. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.coInsurance[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.coInsurance[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.coInsurance[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.coInsurance[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.coInsurance[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.coInsurance[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.coInsurance[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.coInsurance[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.coInsurance[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.coInsurance[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.coInsurance[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.coInsurance[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.coInsurance[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.coInsurance[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.coInsurance[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.coInsurance[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.coInsurance[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.coInsurance[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.coInsurance[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.coInsurance[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.coInsurance[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.coInsurance[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.coInsurance[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.coInsurance[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coInsurance[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coInsurance[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.coInsurance[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.coInsurance[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.coInsurance[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.coPayment`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid co-payment entries. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.coPayment[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.coPayment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.coPayment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.coPayment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.coPayment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.coPayment[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.coPayment[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.coPayment[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.coPayment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.coPayment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.coPayment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.coPayment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.coPayment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.coPayment[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.coPayment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.coPayment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.coPayment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.coPayment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.coPayment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.coPayment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.coPayment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.coPayment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.coPayment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.coPayment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coPayment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.coPayment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coPayment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coPayment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coPayment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coPayment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coPayment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coPayment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.coPayment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.coPayment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.coPayment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.costContainment`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid cost containment entries. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.costContainment[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.costContainment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.costContainment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.costContainment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.costContainment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.costContainment[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.costContainment[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.costContainment[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.costContainment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.costContainment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.costContainment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.costContainment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.costContainment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.costContainment[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.costContainment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.costContainment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.costContainment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.costContainment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.costContainment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.costContainment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.costContainment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.costContainment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.costContainment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.costContainment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.costContainment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.costContainment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.costContainment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.costContainment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.costContainment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.costContainment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.costContainment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.costContainment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.costContainment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.costContainment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.costContainment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.deductible`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid deductible entries. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.deductible[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.deductible[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.deductible[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.deductible[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.deductible[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.deductible[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.deductible[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.deductible[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.deductible[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.deductible[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.deductible[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.deductible[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.deductible[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.deductible[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.deductible[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.deductible[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.deductible[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.deductible[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.deductible[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.deductible[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.deductible[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.deductible[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.deductible[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.deductible[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.deductible[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.deductible[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.deductible[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.deductible[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.deductible[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.deductible[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.deductible[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.deductible[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.deductible[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.deductible[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.deductible[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.limitations`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid limitation entries. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.limitations[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.limitations[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.limitations[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.limitations[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.limitations[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.limitations[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.limitations[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.limitations[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.limitations[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.limitations[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.limitations[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.limitations[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.limitations[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.limitations[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.limitations[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.limitations[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.limitations[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.limitations[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.limitations[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.limitations[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.limitations[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.limitations[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.limitations[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.limitations[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.limitations[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.limitations[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.limitations[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.limitations[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.limitations[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.limitations[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.limitations[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.limitations[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.limitations[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.limitations[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.limitations[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.outOfPocket`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid out-of-pocket entries. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.outOfPocket[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.outOfPocket[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.outOfPocket[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.outOfPocket[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.outOfPocket[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.outOfPocket[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.outOfPocket[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.outOfPocket[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.outOfPocket[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.outOfPocket[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.outOfPocket[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.outOfPocket[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.outOfPocket[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.outOfPocket[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.outOfPocket[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.outOfPocket[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.outOfPocket[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.outOfPocket[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.outOfPocket[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.outOfPocket[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.outOfPocket[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.outOfPocket[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.outOfPocket[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.outOfPocket[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.outOfPocket[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.outOfPocket[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.spendDown`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid spend down entries. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.spendDown[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.spendDown[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.spendDown[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.spendDown[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.spendDown[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.spendDown[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.spendDown[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.spendDown[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.spendDown[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.spendDown[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.spendDown[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.spendDown[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.spendDown[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.spendDown[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.spendDown[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.spendDown[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.spendDown[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.spendDown[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.spendDown[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.spendDown[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.spendDown[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.spendDown[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.spendDown[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.spendDown[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.spendDown[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.spendDown[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.spendDown[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.spendDown[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.spendDown[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.spendDown[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.spendDown[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.spendDown[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.spendDown[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.spendDown[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.spendDown[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.limitations`** (`array of EligibilityCheckLimitation objects`): A list of benefit limitation entries, expressed as an amount, percent, or quantity. Dental and vision plans often use this benefit type to specify an annual maximum benefit amount. The Affordable Care Act prevents most commercial health plans from imposing limits on annual or lifetime benefit amounts, but this generally doesn't apply to government health plans and some commercial health plans may be exempt. When present, the `amount` indicates the maximum benefit amount the plan allocates to the patient. The `messages` array often includes values like "ANNUAL MAXIMUM". - **`plans[].benefits.limitations[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.limitations[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.limitations[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.limitations[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.limitations[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.limitations[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.limitations[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.limitations[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.limitations[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.limitations[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.limitations[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.limitations[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.limitations[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.limitations[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.limitations[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.limitations[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.limitations[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.limitations[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.limitations[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.limitations[].amount`** (`string`): The monetary amount for this limitation. - **`plans[].benefits.limitations[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.limitations[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.limitations[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.limitations[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.limitations[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.limitations[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.limitations[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.limitations[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.limitations[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.limitations[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.limitations[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.limitations[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.limitations[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.limitations[].percent`** (`string`): The percentage value for this limitation, expressed as a decimal (e.g., 0.80 for 80%). - **`plans[].benefits.limitations[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.limitations[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.limitations[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.limitations[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.limitations[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.limitations[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.limitations[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.limitations[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.limitations[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.limitations[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.limitations[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.limitations[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.limitations[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.limitations[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.limitations[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.limitations[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.limitations[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.limitations[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.limitations[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.limitations[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.limitations[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.limitations[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.limitations[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.limitations[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.limitations[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.limitations[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.limitations[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.limitations[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.limitations[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.limitations[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.limitations[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.limitations[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.limitations[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.limitations[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.limitations[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.limitations[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.limitations[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.limitations[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.limitations[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.limitations[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.limitations[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.limitations[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.limitations[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.limitations[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.limitations[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.limitations[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.limitations[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.limitations[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.managedCareCoordinator`** (`array of EligibilityCheckManagedCareCoordinator objects`): A list of managed care coordinator information for the patient. When present, the care coordinator's details are in the `relatedEntities` array. - **`plans[].benefits.managedCareCoordinator[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.managedCareCoordinator[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.managedCareCoordinator[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.managedCareCoordinator[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.managedCareCoordinator[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.managedCareCoordinator[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.managedCareCoordinator[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.managedCareCoordinator[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.managedCareCoordinator[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.managedCareCoordinator[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.managedCareCoordinator[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.managedCareCoordinator[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.managedCareCoordinator[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.managedCareCoordinator[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.managedCareCoordinator[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.managedCareCoordinator[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.managedCareCoordinator[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.managedCareCoordinator[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.managedCareCoordinator[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.managedCareCoordinator[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.managedCareCoordinator[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.managedCareCoordinator[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.managedCareCoordinator[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.managedCareCoordinator[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.managedCareCoordinator[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.managedCareCoordinator[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.managedCareCoordinator[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.managedCareCoordinator[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.managedCareCoordinator[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.managedCareCoordinator[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.managedCareCoordinator[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.managedCareCoordinator[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.managedCareCoordinator[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.managedCareCoordinator[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.nonCovered`** (`array of EligibilityCheckNonCovered objects`): A list of non-covered services for the patient. Indicates that the patient's plan doesn't cover a specific service type you submitted in the eligibility check. Note that the absence of a `nonCovered` entry doesn't mean that a specific service is covered. - **`plans[].benefits.nonCovered[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.nonCovered[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.nonCovered[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.nonCovered[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.nonCovered[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.nonCovered[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.nonCovered[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.nonCovered[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.nonCovered[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.nonCovered[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.nonCovered[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.nonCovered[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.nonCovered[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.nonCovered[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.nonCovered[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.nonCovered[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.nonCovered[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.nonCovered[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.nonCovered[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.nonCovered[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.nonCovered[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.nonCovered[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.nonCovered[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.nonCovered[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.nonCovered[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.nonCovered[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.nonCovered[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.nonCovered[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.nonCovered[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.nonCovered[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.nonCovered[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.nonCovered[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.nonCovered[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.nonCovered[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.nonCovered[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.nonCovered[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.nonCovered[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.nonCovered[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.nonCovered[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.nonCovered[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.nonCovered[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.nonCovered[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.nonCovered[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.nonCovered[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.nonCovered[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.nonCovered[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.nonCovered[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.nonCovered[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.nonCovered[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.nonCovered[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.nonCovered[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.nonCovered[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.nonCovered[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.nonCovered[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.nonCovered[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.nonCovered[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.nonCovered[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.nonCovered[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.nonCovered[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.nonCovered[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.nonCovered[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.nonCovered[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.nonCovered[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.nonCovered[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.nonCovered[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.nonCovered[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.nonCovered[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.nonCovered[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.nonCovered[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.nonCovered[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.nonCovered[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.nonCovered[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.nonCovered[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.nonCovered[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.nonCovered[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.nonCovered[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.nonCovered[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.notDeemedMedicalNecessity`** (`array of EligibilityCheckNotDeemedMedicalNecessity objects`): A list of services the payer determined aren't medically necessary for the patient. Indicates the payer has determined this service isn't medically necessary and won't cover it on that basis. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.notDeemedMedicalNecessity[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.notDeemedMedicalNecessity[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.notDeemedMedicalNecessity[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.notDeemedMedicalNecessity[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.notDeemedMedicalNecessity[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.notDeemedMedicalNecessity[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.notDeemedMedicalNecessity[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.notDeemedMedicalNecessity[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.notDeemedMedicalNecessity[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.notDeemedMedicalNecessity[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.notDeemedMedicalNecessity[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.notDeemedMedicalNecessity[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.notDeemedMedicalNecessity[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.notDeemedMedicalNecessity[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.notDeemedMedicalNecessity[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.notDeemedMedicalNecessity[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.notDeemedMedicalNecessity[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.notDeemedMedicalNecessity[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.notDeemedMedicalNecessity[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.otherOrAdditionalPayer`** (`array of EligibilityCheckOtherOrAdditionalPayer objects`): A list of other payers with coverage responsibility for the patient. Indicates another payer that has coverage responsibility for the patient. This is the signal for coordination of benefits (COB) scenarios. The other payer's details are available in the `relatedEntities` array. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.otherOrAdditionalPayer[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.otherOrAdditionalPayer[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.otherOrAdditionalPayer[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.otherOrAdditionalPayer[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.otherOrAdditionalPayer[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.otherOrAdditionalPayer[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.otherOrAdditionalPayer[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.otherOrAdditionalPayer[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.otherOrAdditionalPayer[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.otherOrAdditionalPayer[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.otherOrAdditionalPayer[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.otherOrAdditionalPayer[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.otherOrAdditionalPayer[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.otherOrAdditionalPayer[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.otherOrAdditionalPayer[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.otherOrAdditionalPayer[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.otherOrAdditionalPayer[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.otherOrAdditionalPayer[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherOrAdditionalPayer[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherOrAdditionalPayer[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.otherOrAdditionalPayer[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.otherOrAdditionalPayer[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.otherSourceOfData`** (`array of EligibilityCheckOtherSourceOfData objects`): A list of entries indicating the benefit information originates from another source. Indicates the information provided came from a source other than the payer's own system. Rarely returned. - **`plans[].benefits.otherSourceOfData[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.otherSourceOfData[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.otherSourceOfData[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.otherSourceOfData[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.otherSourceOfData[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.otherSourceOfData[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherSourceOfData[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.otherSourceOfData[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.otherSourceOfData[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.otherSourceOfData[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.otherSourceOfData[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.otherSourceOfData[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherSourceOfData[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.otherSourceOfData[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.otherSourceOfData[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.otherSourceOfData[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.otherSourceOfData[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.otherSourceOfData[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.otherSourceOfData[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.otherSourceOfData[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.otherSourceOfData[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.otherSourceOfData[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.otherSourceOfData[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.otherSourceOfData[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.otherSourceOfData[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.otherSourceOfData[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.otherSourceOfData[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.otherSourceOfData[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.otherSourceOfData[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.otherSourceOfData[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.otherSourceOfData[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.otherSourceOfData[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.otherSourceOfData[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.otherSourceOfData[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.otherSourceOfData[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.otherSourceOfData[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.otherSourceOfData[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.otherSourceOfData[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.otherSourceOfData[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.otherSourceOfData[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.otherSourceOfData[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.otherSourceOfData[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.otherSourceOfData[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherSourceOfData[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.otherSourceOfData[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherSourceOfData[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherSourceOfData[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherSourceOfData[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherSourceOfData[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherSourceOfData[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherSourceOfData[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.otherSourceOfData[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.otherSourceOfData[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.outOfPocket`** (`array of EligibilityCheckOutOfPocket objects`): A list of out-of-pocket maximum benefit entries from the payer. The `amount` is the limit on what the patient pays. The decimal precision reflects what the payer sent (for example, `5000.0` or `5000`). Check `timePeriod` to determine whether an amount is the full maximum or the amount remaining. - **`plans[].benefits.outOfPocket[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.outOfPocket[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.outOfPocket[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.outOfPocket[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.outOfPocket[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.outOfPocket[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.outOfPocket[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.outOfPocket[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.outOfPocket[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.outOfPocket[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.outOfPocket[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.outOfPocket[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.outOfPocket[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.outOfPocket[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.outOfPocket[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.outOfPocket[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.outOfPocket[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.outOfPocket[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.outOfPocket[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.outOfPocket[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.outOfPocket[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.outOfPocket[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.outOfPocket[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.outOfPocket[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.outOfPocket[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.outOfPocket[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.outOfPocket[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.outOfPocket[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.outOfPocket[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.outOfPocket[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.outOfPocket[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.outOfPocket[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.outOfPocket[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.outOfPocket[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.outOfPocket[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.outOfPocket[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.outOfPocket[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.outOfPocket[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.outOfPocket[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.outOfPocket[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.outOfPocket[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.outOfPocket[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.outOfPocket[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.outOfPocket[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.outOfPocket[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.outOfPocket[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.outOfPocket[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.outOfPocket[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.outOfPocket[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.outOfPocket[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.outOfPocket[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.outOfPocket[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.outOfPocket[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.outOfPocket[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.outOfPocket[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.outOfPocket[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.outOfPocket[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.outOfPocket[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.outOfPocket[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.outOfPocket[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.outOfPocket[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.outOfPocket[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.outOfPocket[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.outOfPocket[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.outOfPocket[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.outOfPocket[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.outOfPocket[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.outOfPocket[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.outOfPocket[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.outOfPocket[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.outOfPocket[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.outOfPocket[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.outOfPocket[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.outOfPocket[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.outOfPocket[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.preExistingCondition`** (`array of EligibilityCheckPreExistingCondition objects`): A list of coverage restrictions due to pre-existing conditions. Indicates coverage for this benefit is restricted because of a pre-existing condition. - **`plans[].benefits.preExistingCondition[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.preExistingCondition[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.preExistingCondition[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.preExistingCondition[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.preExistingCondition[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.preExistingCondition[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.preExistingCondition[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.preExistingCondition[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.preExistingCondition[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.preExistingCondition[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.preExistingCondition[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.preExistingCondition[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.preExistingCondition[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.preExistingCondition[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.preExistingCondition[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.preExistingCondition[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.preExistingCondition[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.preExistingCondition[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.preExistingCondition[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.preExistingCondition[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.preExistingCondition[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.preExistingCondition[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.preExistingCondition[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.preExistingCondition[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.preExistingCondition[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.preExistingCondition[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.preExistingCondition[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.preExistingCondition[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.preExistingCondition[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.preExistingCondition[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.preExistingCondition[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.preExistingCondition[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.preExistingCondition[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.preExistingCondition[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.preExistingCondition[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.preExistingCondition[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.preExistingCondition[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.preExistingCondition[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.preExistingCondition[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.preExistingCondition[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.preExistingCondition[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.preExistingCondition[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.preExistingCondition[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.preExistingCondition[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.preExistingCondition[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.preExistingCondition[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.preExistingCondition[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.preExistingCondition[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.preExistingCondition[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.preExistingCondition[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.preExistingCondition[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.preExistingCondition[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.preExistingCondition[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.preExistingCondition[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.preExistingCondition[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.preExistingCondition[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.preExistingCondition[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.preExistingCondition[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.preExistingCondition[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.preExistingCondition[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.preExistingCondition[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.preExistingCondition[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.preExistingCondition[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.preExistingCondition[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.preExistingCondition[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.preExistingCondition[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.preExistingCondition[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.preExistingCondition[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.preExistingCondition[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.primaryCareProvider`** (`array of EligibilityCheckPrimaryCareProvider objects`): A list of primary care providers for the patient. A PCP is the main healthcare provider responsible for managing a patient's care and coordinating referrals to specialists. When present, the provider's information is available in the `relatedEntities` array. - **`plans[].benefits.primaryCareProvider[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.primaryCareProvider[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.primaryCareProvider[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.primaryCareProvider[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.primaryCareProvider[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.primaryCareProvider[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.primaryCareProvider[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.primaryCareProvider[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.primaryCareProvider[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.primaryCareProvider[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.primaryCareProvider[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.primaryCareProvider[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.primaryCareProvider[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.primaryCareProvider[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.primaryCareProvider[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.primaryCareProvider[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.primaryCareProvider[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.primaryCareProvider[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.primaryCareProvider[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.primaryCareProvider[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.primaryCareProvider[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.primaryCareProvider[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.primaryCareProvider[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.primaryCareProvider[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.primaryCareProvider[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.primaryCareProvider[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.primaryCareProvider[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.primaryCareProvider[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.primaryCareProvider[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.primaryCareProvider[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.primaryCareProvider[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.primaryCareProvider[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.primaryCareProvider[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.primaryCareProvider[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.primaryCareProvider[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.primaryCareProvider[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.primaryCareProvider[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.primaryCareProvider[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.primaryCareProvider[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.primaryCareProvider[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.primaryCareProvider[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.primaryCareProvider[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.primaryCareProvider[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.primaryCareProvider[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.primaryCareProvider[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.primaryCareProvider[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.primaryCareProvider[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.primaryCareProvider[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.primaryCareProvider[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.primaryCareProvider[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.primaryCareProvider[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.primaryCareProvider[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.primaryCareProvider[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.priorYearsHistory`** (`array of EligibilityCheckPriorYearsHistory objects`): A list of historical benefits information for the patient. - **`plans[].benefits.priorYearsHistory[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.priorYearsHistory[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.priorYearsHistory[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.priorYearsHistory[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.priorYearsHistory[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.priorYearsHistory[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.priorYearsHistory[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.priorYearsHistory[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.priorYearsHistory[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.priorYearsHistory[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.priorYearsHistory[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.priorYearsHistory[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.priorYearsHistory[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.priorYearsHistory[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.priorYearsHistory[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.priorYearsHistory[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.priorYearsHistory[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.priorYearsHistory[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.priorYearsHistory[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.priorYearsHistory[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.priorYearsHistory[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.priorYearsHistory[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.priorYearsHistory[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.priorYearsHistory[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.priorYearsHistory[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.priorYearsHistory[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.priorYearsHistory[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.priorYearsHistory[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.priorYearsHistory[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.priorYearsHistory[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.priorYearsHistory[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.priorYearsHistory[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.priorYearsHistory[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.priorYearsHistory[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.priorYearsHistory[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.priorYearsHistory[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.priorYearsHistory[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.priorYearsHistory[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.priorYearsHistory[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.priorYearsHistory[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.priorYearsHistory[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.priorYearsHistory[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.priorYearsHistory[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.priorYearsHistory[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.priorYearsHistory[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.priorYearsHistory[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.priorYearsHistory[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.priorYearsHistory[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.priorYearsHistory[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.priorYearsHistory[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.priorYearsHistory[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.priorYearsHistory[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.priorYearsHistory[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.reserve`** (`array of EligibilityCheckReserve objects`): A list of reserve benefits for the patient. This type is primarily used by Medicare (HETS) to indicate lifetime reserve benefit amounts separate from annual limits. For example, Medicare Lifetime Reserve days – the limited pool of additional inpatient hospital days a patient can use after exhausting a benefit period. - **`plans[].benefits.reserve[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.reserve[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.reserve[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.reserve[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.reserve[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.reserve[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.reserve[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.reserve[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.reserve[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.reserve[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.reserve[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.reserve[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.reserve[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.reserve[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.reserve[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.reserve[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.reserve[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.reserve[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.reserve[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.reserve[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.reserve[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.reserve[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.reserve[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.reserve[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.reserve[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.reserve[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.reserve[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.reserve[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.reserve[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.reserve[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.reserve[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.reserve[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.reserve[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.reserve[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.reserve[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.reserve[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.reserve[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.reserve[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.reserve[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.reserve[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.reserve[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.reserve[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.reserve[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.reserve[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.reserve[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.reserve[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.reserve[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.reserve[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.reserve[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.reserve[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.reserve[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.reserve[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.reserve[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.reserve[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.reserve[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.reserve[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.reserve[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.reserve[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.reserve[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.reserve[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.reserve[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.reserve[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.reserve[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.reserve[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.reserve[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.reserve[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.reserve[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.reserve[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.reserve[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.reserve[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.reserve[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.reserve[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.reserve[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.reserve[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.reserve[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.reserve[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.reserve[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.reserve[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.secondSurgicalOpinionRequired`** (`array of EligibilityCheckSecondSurgicalOpinionRequired objects`): A list of benefits requiring a second surgical opinion for coverage. Indicates the plan requires a second surgical opinion before this benefit is available. This is a precondition for obtaining the benefit. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.secondSurgicalOpinionRequired[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.secondSurgicalOpinionRequired[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.secondSurgicalOpinionRequired[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.secondSurgicalOpinionRequired[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.secondSurgicalOpinionRequired[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.secondSurgicalOpinionRequired[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.secondSurgicalOpinionRequired[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.secondSurgicalOpinionRequired[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.secondSurgicalOpinionRequired[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.secondSurgicalOpinionRequired[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.secondSurgicalOpinionRequired[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.secondSurgicalOpinionRequired[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.secondSurgicalOpinionRequired[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.secondSurgicalOpinionRequired[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.secondSurgicalOpinionRequired[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.servicesRestrictedToFollowingProvider`** (`array of EligibilityCheckServicesRestrictedToFollowingProvider objects`): A list of services restricted to specific providers. Indicates the benefit is available only when delivered by a particular provider, identified in `relatedEntities`. This doesn't confirm whether that provider is in or out of network with the payer. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.spendDown`** (`array of EligibilityCheckSpendDown objects`): A list of spend down benefit entries from the payer. Spend down is a process that allows individuals with high medical expenses to qualify for Medicaid even if their income is above the Medicaid income limit. The `amount` represents the total the patient pays out-of-pocket before they can receive Medicaid benefits. The decimal precision reflects what the payer sent (for example, `1500.0` or `1500`). - **`plans[].benefits.spendDown[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.spendDown[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.spendDown[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.spendDown[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.spendDown[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.spendDown[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.spendDown[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.spendDown[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.spendDown[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.spendDown[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.spendDown[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.spendDown[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.spendDown[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.spendDown[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.spendDown[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.spendDown[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.spendDown[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.spendDown[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.spendDown[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.spendDown[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.spendDown[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.spendDown[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.spendDown[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.spendDown[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.spendDown[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.spendDown[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.spendDown[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.spendDown[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.spendDown[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.spendDown[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.spendDown[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.spendDown[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.spendDown[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.spendDown[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.spendDown[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.spendDown[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.spendDown[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.spendDown[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.spendDown[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.spendDown[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.spendDown[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.spendDown[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.spendDown[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.spendDown[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.spendDown[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.spendDown[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.spendDown[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.spendDown[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.spendDown[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.spendDown[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.spendDown[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.spendDown[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.spendDown[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.spendDown[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.spendDown[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.spendDown[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.spendDown[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.spendDown[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.spendDown[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.spendDown[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.spendDown[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.spendDown[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.spendDown[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.spendDown[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.spendDown[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.spendDown[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.spendDown[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.spendDown[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.spendDown[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.spendDown[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.spendDown[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.spendDown[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.spendDown[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.spendDown[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.spendDown[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.spendDown[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.spendDown[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.spendDown[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.spendDown[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.spendDown[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.spendDown[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.statuses`** (`array of EligibilityCheckEligibilityStatus objects`): Eligibility status benefit entries from the payer. Each entry indicates whether the patient has active or inactive coverage for a specific service, network, and coverage level. - **`plans[].benefits.statuses[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.statuses[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.statuses[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.statuses[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.statuses[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.statuses[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.statuses[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.statuses[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.statuses[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.statuses[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.statuses[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.statuses[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.statuses[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.statuses[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.statuses[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.statuses[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.statuses[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.statuses[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.statuses[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.statuses[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.statuses[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.statuses[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.statuses[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.statuses[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.statuses[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.statuses[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.statuses[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.statuses[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.statuses[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.statuses[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.statuses[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.statuses[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.statuses[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.statuses[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.statuses[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.statuses[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.statuses[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.statuses[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.statuses[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.statuses[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.statuses[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.statuses[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.statuses[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.statuses[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.statuses[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.statuses[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.statuses[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.statuses[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.statuses[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.statuses[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.statuses[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.statuses[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.statuses[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.statuses[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.statuses[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.statuses[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.statuses[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.statuses[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.statuses[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.statuses[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.statuses[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.statuses[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.statuses[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.statuses[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.statuses[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.statuses[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.statuses[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.statuses[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.statuses[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.statuses[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.statuses[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.statuses[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.statuses[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.statuses[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.statuses[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.statuses[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.statuses[].status`** (`string`) (required): The patient's coverage status, indicating whether their coverage is active or inactive for specific services. - Allowed values: `ACTIVE_COVERAGE`, `ACTIVE_FULL_RISK_CAPITATION`, `ACTIVE_SERVICES_CAPITATED`, `ACTIVE_SERVICES_CAPITATED_TO_PRIMARY_CARE_PROVIDER`, `ACTIVE_PENDING_INVESTIGATION`, `INACTIVE`, `INACTIVE_PENDING_ELIGIBILITY_UPDATE`, `INACTIVE_PENDING_INVESTIGATION` - **`plans[].benefits.unlimited`** (`array of EligibilityCheckUnlimited objects`): A list of unlimited benefits for the patient's plan. For example, unlimited physical therapy visits or unlimited preventive care. - **`plans[].benefits.unlimited[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.unlimited[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.unlimited[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.unlimited[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.unlimited[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.unlimited[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.unlimited[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.unlimited[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.unlimited[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.unlimited[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.unlimited[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.unlimited[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.unlimited[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.unlimited[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.unlimited[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.unlimited[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.unlimited[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.unlimited[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.unlimited[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.unlimited[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.unlimited[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.unlimited[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.unlimited[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.unlimited[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.unlimited[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.unlimited[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.unlimited[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.unlimited[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.unlimited[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.unlimited[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.unlimited[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.unlimited[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.unlimited[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.unlimited[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.unlimited[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.unlimited[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.unlimited[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.unlimited[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.unlimited[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.unlimited[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.unlimited[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.unlimited[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.unlimited[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.unlimited[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.unlimited[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.unlimited[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.unlimited[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.unlimited[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.unlimited[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.unlimited[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.unlimited[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.unlimited[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.unlimited[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.unlimited[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.unlimited[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.unlimited[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.unlimited[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.unlimited[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.unlimited[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.unlimited[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.unlimited[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.unlimited[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.unlimited[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.unlimited[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.unlimited[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.unlimited[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.unlimited[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.unlimited[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.unlimited[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.unlimited[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.unlimited[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.unlimited[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.unlimited[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.unlimited[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.unlimited[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.unlimited[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.unlimited[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.unlimited[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].name`** (`string`): The name of the plan. Stedi derives this from the plan names the payer sends in the benefit entries. This property is present when the payer sends consistent plan names, and absent when the data is missing, ambiguous, or contradictory. When absent, check each benefit's `planCoverageDescription` for the plan information. - **`provider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. - **`provider.additionalInformation`** (`object`): Additional identifying information about the provider. - **`provider.additionalInformation.contractNumber`** (`string`): The provider's contract number. - **`provider.additionalInformation.electronicDevicePin`** (`string`): The provider's electronic device PIN. - **`provider.additionalInformation.facilityIdNumber`** (`string`): The ID number for the provider's facility. - **`provider.additionalInformation.facilityNetworkId`** (`string`): The provider's facility network identification number. - **`provider.additionalInformation.medicaidProviderNumber`** (`string`): The provider's Medicaid provider number. - **`provider.additionalInformation.medicareProviderNumber`** (`string`): The provider's Medicare provider number. - **`provider.additionalInformation.personalIdentificationNumber`** (`string`): The provider's personal identification number. - **`provider.additionalInformation.planNetworkId`** (`string`): The provider's plan network identification number. - **`provider.additionalInformation.priorIdentifierNumber`** (`string`): The provider's prior identifier number. - **`provider.additionalInformation.stateLicense`** (`object`): The provider's state license information. - **`provider.additionalInformation.stateLicense.number`** (`string`) (required): The provider's state license number. - **`provider.additionalInformation.stateLicense.state`** (`string`): The state or province code that issued the license. - **`provider.additionalInformation.submitterId`** (`string`): The provider's submitter ID. - **`provider.additionalInformation.userId`** (`string`): The provider's user ID. - **`provider.address`** (`object`): The address of the entity. - **`provider.address.addressLine1`** (`string`): The first line of the address. - **`provider.address.addressLine2`** (`string`): The second line of the address. - **`provider.address.city`** (`string`): The city. - **`provider.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`provider.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`provider.ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`provider.name`** (`any`): A name that is either a person or an organization. - **`provider.name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`provider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`provider.name (variant 1).person.lastName`** (`string`): The person's last name. - **`provider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`provider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`provider.name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`provider.provider`** (`object`): Information about a provider associated with the related entity. - **`provider.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`provider.provider.reference`** (`string`): The provider's taxonomy code. - **`provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number the payer assigns. - **`provider.ssn`** (`string`): The Social Security Number (SSN). - **`provider.tin`** (`string`): The Federal Taxpayer Identification Number. - **`provider.type`** (`string`) (required): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `HOSPITAL`, `FACILITY`, `GATEWAY_PROVIDER`, `PLAN_SPONSOR`, `PAYER` - **`subscriber`** (`object`): Information about the primary policyholder for the insurance plan listed in the original eligibility check request. The response will always include either the subscriber's name or member ID for identification, but most payers will also return the subscriber's date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the subscriber's full legal name. - **`subscriber.additionalInformation`** (`object`): Additional identifying information about the subscriber. - **`subscriber.additionalInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`subscriber.additionalInformation.caseNumber`** (`string`): The case number associated with the subscriber. - **`subscriber.additionalInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`subscriber.additionalInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`subscriber.additionalInformation.familyUnitNumber`** (`string`): The family unit number. - **`subscriber.additionalInformation.group`** (`object`): Additional information with description. - **`subscriber.additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`subscriber.additionalInformation.group.number`** (`string`) (required): The identification number. - **`subscriber.additionalInformation.groupOrPolicyNumber`** (`string`): The group or policy number. - **`subscriber.additionalInformation.identificationCardSerialNumber`** (`string`): Used when the identification card has a number in addition to the member ID. - **`subscriber.additionalInformation.identityCardNumber`** (`string`): The identity card number. Present when this number differs from the member ID. - **`subscriber.additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`subscriber.additionalInformation.issueNumber`** (`string`): The issue number. - **`subscriber.additionalInformation.mbi`** (`string`): The patient's Medicare Beneficiary Identifier (MBI). If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`subscriber.additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`subscriber.additionalInformation.medicalRecordId`** (`string`): The medical record identification number. - **`subscriber.additionalInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`subscriber.additionalInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`subscriber.additionalInformation.plan`** (`object`): Additional information with description. - **`subscriber.additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`subscriber.additionalInformation.plan.number`** (`string`) (required): The identification number. - **`subscriber.additionalInformation.planNetwork`** (`object`): Additional information with description. - **`subscriber.additionalInformation.planNetwork.name`** (`string`): The name or description associated with `number`. - **`subscriber.additionalInformation.planNetwork.number`** (`string`) (required): The identification number. - **`subscriber.additionalInformation.priorIdentifierNumber`** (`string`): The prior identifier number. - **`subscriber.additionalInformation.ssn`** (`string`): The patient's Social Security Number (SSN). - **`subscriber.address`** (`object`): The address of the entity. - **`subscriber.address.addressLine1`** (`string`): The first line of the address. - **`subscriber.address.addressLine2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. - **`subscriber.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`subscriber.birthSequenceNumber`** (`integer`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`subscriber.dateOfBirth`** (`string`): The patient's date of birth as an ISO 8601 `YYYY-MM-DD` string. For example, `1985-03-15` represents March 15, 1985. - **`subscriber.dates`** (`object`): Contains the dates associated with patient attributes, as ISO 8601 date ranges. These provide temporal context for patient-specific data and eligibility periods. - **`subscriber.dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.added.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.admission.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.certification`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.certification.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.certification.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.cobra`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.cobra.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.cobra.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.dateOfDeath`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.dateOfDeath.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.dateOfDeath.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.discharge.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.effectiveDateOfChange`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.effectiveDateOfChange.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.effectiveDateOfChange.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.eligibility.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.enrollment`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.enrollment.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.enrollment.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.issue`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.issue.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.issue.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.plan.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.policy`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.policy.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.policy.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.premiumPaidToDate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.premiumPaidToDate.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.premiumPaidToDate.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.service.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.status.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.gender`** (`string`): Code indicating the patient's gender. Payers may sometimes return other non-compliant values. - Allowed values: `FEMALE`, `MALE`, `UNKNOWN` - **`subscriber.maintenance`** (`object`): Information indicating whether the payer signaled that the patient's identifying information differs from what you submitted. - **`subscriber.maintenance.indicator`** (`string`): Indicates whether the payer signaled that the patient's identifying information differs from what you submitted. - Allowed values: `NONE`, `PAYER_INDICATED` - **`subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`subscriber.name`** (`any`): A name that is either a person or an organization. - **`subscriber.name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`subscriber.name (variant 1).person.firstName`** (`string`): The person's first name. - **`subscriber.name (variant 1).person.lastName`** (`string`): The person's last name. - **`subscriber.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`subscriber.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`subscriber.name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`subscriber.provider`** (`object`): Information about a provider associated with the related entity. - **`subscriber.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`subscriber.provider.reference`** (`string`): The provider's taxonomy code. - **`warnings`** (`array of EligibilityCheckWarning objects`): Issues with your eligibility request that could affect the results, or information about the response. For example, warnings can help explain why the request was rejected. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. - **`x12`** (`string`) (required): Typically this property contains the raw X12 EDI [271 Eligibility Benefit Response](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-response-x279a1/01GS66YHZPB37ABF34DBPSR213) from the payer. In some circumstances, this property may contain a [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) instead of a 271. A 999 indicates validation errors in the X12 EDI transaction, such as improper formatting or missing or invalid values. If this property contains a 999, many of the other response properties will be empty, as Stedi populates them with information from the 271. **Example:** ```json { "eligibilitySearchId": "01a06d4a-a0fa-77d2-8b49-caa0546ed292", "id": "ec_01a06d4a-a0fa-77d2-8b49-ca9a74c9888a", "meta": { "outboundTraceId": "01M1PMN87VXMME0ZV6SHJP3B9V", "subscriberTraceNumbers": [ { "originatingCompanyIdentifier": "0101010101", "referenceIdentification": "000011112222333", "type": "CURRENT_TRANSACTION" } ], "traceId": "01M1PMN87VXMME0ZV6SHJP3B9V" }, "payer": { "identification": "61101", "name": { "organization": "HUMANA" }, "type": "PAYER" }, "payerId": "61101", "plans": [ { "benefits": { "benefitDisclaimer": [ { "coverageLevel": "INDIVIDUAL", "messages": [ "THIS IS ONLY AN ESTIMATION OF BENEFITS, AND ALL PAYMENTS ARE SUBJECT TO POLICY GUIDELINES, MEDICAL NECESSITY, AND MEMBER ELIGIBILITY AT THE TIME SERVICES ARE PERFORMED." ], "network": { "indicator": "IN_AND_OUT_OF_NETWORK" } } ], "coInsurance": [ { "coverageLevel": "INDIVIDUAL", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "messages": [ "INPATIENT HOSPITAL ROOM AND BOARD" ], "network": { "indicator": "IN_NETWORK" }, "percent": "0", "service": { "definition": "Hospital - Room and Board", "system": "STC", "value": "49" }, "timePeriod": "ADMISSION" } ], "coPayment": [ { "amount": "2000", "coverageLevel": "INDIVIDUAL", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "messages": [ "INPATIENT HOSPITAL ROOM AND BOARD" ], "network": { "indicator": "IN_NETWORK" }, "service": { "definition": "Hospital - Room and Board", "system": "STC", "value": "49" }, "timePeriod": "ADMISSION" }, { "amount": "100", "coverageLevel": "INDIVIDUAL", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "messages": [ "ER" ], "network": { "indicator": "IN_NETWORK" }, "service": { "definition": "Emergency Services", "system": "STC", "value": "86" }, "timePeriod": "EPISODE" } ], "deductible": [ { "amount": "0", "coverageLevel": "INDIVIDUAL", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "messages": [ "INPATIENT HOSPITAL ROOM AND BOARD" ], "network": { "indicator": "IN_NETWORK" }, "service": { "definition": "Hospital - Room and Board", "system": "STC", "value": "49" } } ], "limitations": [ { "coverageLevel": "INDIVIDUAL", "messages": [ "MAX DEPENDENT AGE" ], "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "quantity": { "qualifier": "YEARS", "value": "26" }, "service": { "definition": "Health Benefit Plan Coverage", "system": "STC", "value": "30" } } ], "nonCovered": [ { "amount": "0", "coverageLevel": "INDIVIDUAL", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "messages": [ "VIEW CONTRACT FOR COVERAGE DETAILS" ], "network": { "indicator": "IN_NETWORK" }, "service": { "definition": "Dental Care", "system": "STC", "value": "35" } } ], "otherSourceOfData": [ { "coverageLevel": "INDIVIDUAL", "messages": [ "NO DESCRIPTION PROVIDED" ], "network": { "indicator": "IN_AND_OUT_OF_NETWORK" } } ], "outOfPocket": [ { "amount": "8000", "coverageLevel": "INDIVIDUAL", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "definition": "Health Benefit Plan Coverage", "system": "STC", "value": "30" }, "timePeriod": "CALENDAR_YEAR" } ], "primaryCareProvider": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "relatedEntities": [ { "address": { "addressLine1": "202 Main St", "city": "Tulsa", "postalCode": "74008", "state": "OK" }, "contacts": [ { "phoneNumbers": [ "9999999999" ] } ], "name": { "person": { "firstName": "Dough", "lastName": "John" } }, "type": "PRIMARY_CARE_PROVIDER" } ] } ], "statuses": [ { "coverageLevel": "EMPLOYEE_ONLY", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "messages": [ "000 111", "Medicare PPO", "Member cannot be balanced billed for medical copayments, coinsurance or deductibles on this Plan. Member is cost-share protected by the state Medicaid. In WA if Medicaid is not cost-share protecting members, Humana will process the claim paying member cost share.", "THIS MEMBER MAY BE ELIGIBLE FOR A FREE FITNESS MEMBERSHIP." ], "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "definition": "Health Benefit Plan Coverage", "system": "STC", "value": "30" }, "status": "ACTIVE_COVERAGE" } ] }, "name": "Humana Gold Plan" } ], "provider": { "name": { "organization": "MEDICAL PROVIDER" }, "npi": "1999999984", "type": "PROVIDER" }, "subscriber": { "additionalInformation": { "group": { "name": "HUMANA INSURANCE COMPANY", "number": "11223344" }, "mbi": "1A22BB3CC44" }, "address": { "addressLine1": "101 MAIN ST", "city": "ATLANTA", "postalCode": "303010001", "state": "GA" }, "dateOfBirth": "1975-05-05", "dates": { "plan": { "start": "2024-01-01" }, "service": { "start": "2024-09-17" } }, "gender": "FEMALE", "memberId": "HUMANA123", "name": { "person": { "firstName": "JANE", "lastName": "DOE", "middleName": "L" } } }, "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *260904*1640*^*00501*263887373*0*T*`~GS*HB*STEDI*117151744*20260904*164002*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01M1PMN87VXMME0ZV6SHJP3B9V*20260325*0901~HL*1**20*1~NM1*PR*2*HUMANA*****PI*61101~HL*2*1*21*1~NM1*1P*2*MEDICAL PROVIDER*****XX*1999999984~HL*3*2*22*0~TRN*1*000011112222333*0101010101~NM1*IL*1*DOE*JANE*L***MI*HUMANA123~REF*6P*11223344~REF*6P*11223344*HUMANA INSURANCE COMPANY~REF*F6*1A22BB3CC44~N3*101 MAIN ST~N4*ATLANTA*GA*303010001~DMG*D8*19750505*F~DTP*346*D8*20240101~DTP*472*D8*20240917~EB*1*EMP*30*PR*Humana Gold Plan*******W~MSG*000 111~MSG*Medicare PPO~MSG*Member cannot be balanced billed for medical copayments, coinsurance or deductibles on this Plan. Member is cost-share protected by the state Medicaid. In WA if Medicaid is not cost-share protecting members, Humana will process the claim paying member cost share.~MSG*THIS MEMBER MAY BE ELIGIBLE FOR A FREE FITNESS MEMBERSHIP.~EB*L***********W~LS*2120~NM1*P3*1*John*Dough~N3*202 Main St~N4*Tulsa*OK*74008~PER*IC**TE*9999999999~LE*2120~EB*F**30******YY*26**W~MSG*MAX DEPENDENT AGE~EB*F**30******YY*31**W~MSG*MAX STUDENT AGE~EB*L****AFFILIATION/CENTER*******W~LS*2120~NM1*GW*2*OK EMP PPO*****PI*34343434~LE*2120~EB*W***********W~MSG*NO DESCRIPTION PROVIDED~EB*1**1^54^33^98^88^UC^47^50^AL^MH^35^86^48*********W~EB*1*IND*1*PR***0*****Y~EB*A*IND*49*PR**36**0****Y~MSG*INPATIENT HOSPITAL ROOM AND BOARD~EB*B*IND*49*PR**36*2000*****Y~MSG*INPATIENT HOSPITAL ROOM AND BOARD~EB*C*IND*49*PR***0*****Y~MSG*INPATIENT HOSPITAL ROOM AND BOARD~EB*A*IND*48*PR**23**0****Y~MSG*INPATIENT HOSPITAL~EB*C*IND*48*PR***0*****Y~MSG*INPATIENT HOSPITAL~EB*A*IND*86*PR**23**0****Y~MSG*ER~EB*B*IND*86*PR**26*100*****Y~MSG*ER~EB*A*IND*86*PR**23**0****Y~MSG*ANESTHESIA~EB*B*IND*86*PR**26*100*****Y~MSG*ANESTHESIA~EB*C*IND*86*PR***0*****Y~MSG*ER~EB*C*IND*86*PR***0*****Y~MSG*ANESTHESIA~EB*I*IND*35*PR***0*****Y~MSG*VIEW CONTRACT FOR COVERAGE DETAILS~EB*A*IND*MH^98*PR**23**0****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*A*IND*MH*PR**23**0****Y~MSG*TELEHEALTH VISIT SPECIALIST~III*ZZ*10~EB*C*IND*MH^98*PR***0*****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*C*IND*MH^98*PR***0*****Y~MSG*TELEHEALTH VISIT SPECIALIST~III*ZZ*10~EB*1*IND*MH*PR***0*****Y~MSG*PHYSICIAN OFFICE VISIT SPECIALIST~EB*A*IND*AL*PR**23**0****Y~MSG*ROUTINE VISION EXAM~EB*F*IND*AL*PR**23*40*****Y~MSG*ROUTINE VISION EXAM~EB*C*IND*AL*PR***0*****Y~MSG*ROUTINE VISION EXAM~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL SURGERY~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL ANESTHESIA~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL MRI SCAN~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL CAT SCAN~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL SURGERY~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL ANESTHESIA~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL MRI SCAN~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL CAT SCAN~EB*1*IND*47*PR***0*****Y~MSG*INPATIENT HOSPITAL~EB*A*IND*UC*PR****.2****Y~MSG*PHYSICIAN OFFICE URGENT CARE~EB*A*IND*UC*PR****.2****Y~MSG*PHYSICIAN OFFICE PREFERRED URGENT CARE~EB*A*IND*UC*PR****.2****Y~MSG*TELEHEALTH URGENT CARE~EB*C*IND*UC*PR***0*****Y~MSG*PHYSICIAN OFFICE URGENT CARE~EB*C*IND*UC*PR***0*****Y~MSG*PHYSICIAN OFFICE PREFERRED URGENT CARE~EB*C*IND*UC*PR***0*****Y~MSG*TELEHEALTH URGENT CARE~EB*C**88****550*****Y~EB*C**88****0*****Y~EB*B**88****35*****Y~MSG*LEVEL 3~EB*B**88****35*****Y~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT PCP~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT SPECIALIST~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT FREESTANDING RAD CTR~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT COMP OUTPT REHAB FACILITY~EB*B*IND*98*PR**23*0*****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*F*IND*98*PR**23**1****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*A*IND*98*PR****.2****Y~MSG*TELEHEALTH VISIT SPECIALIST~III*ZZ*10~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT PCP~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT SPECIALIST~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT FREESTANDING RAD CTR~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT COMP OUTPT REHAB FACILITY~EB*I*IND*98*PR***0*****Y~MSG*PHYSICIAN OFFICE DOCTOR ON DEMAND NOT COVERED~EB*A*IND*33*PR****.2****Y~MSG*MEDICARE COVERED MANIPULATIONS~EB*I*IND*33*PR***0*****Y~MSG*MANIPULATIONS~EB*I*IND*33*PR***0*****Y~MSG*RADIOLOGY~EB*C*IND*33*PR***250*****Y~MSG*MEDICARE COVERED MANIPULATIONS~EB*C*IND*30*PR**23*250*****Y~MSG*SEE EXACT BENEFIT TO VERIFY IF DEDUCTIBLE APPLIES~EB*G*IND*30*PR**23*8000*****Y~EB*G*IND*30***24*200*****W~EB*G*IND*30***29*8500*****W~EB*G*IND*30***24*200*****Y~EB*G*IND*30***29*4000*****Y~EB*F*IND*30***24*30000*****W~EB*F*IND*30***29*9000000*****W~EB*C*IND*30***24*250*****W~EB*C*IND*30***29*0*****W~EB*F*IND*30***24*10000*****W~EB*F*IND*30***29*9000000*****W~EB*G*IND*30***24*400*****W~EB*G*IND*30***29*12000*****W~EB*G*IND*30***24*400*****Y~EB*G*IND*30***29*7500*****Y~EB*P***********W~MSG*THIS IS ONLY AN ESTIMATION OF BENEFITS, AND ALL PAYMENTS ARE SUBJECT TO POLICY GUIDELINES, MEDICAL NECESSITY, AND MEMBER ELIGIBILITY AT THE TIME SERVICES ARE PERFORMED.~SE*175*0001~GE*1*1~IEA*1*263887373~" } ``` #### 400 CreateEligibilityCheck400Error 400 response **Schema:** `CreateEligibilityCheck400ErrorResponseContent` **Example:** ```json { "message": "Payer NOTAPAYER is not configured. Please check our published payer list or contact Stedi support to resolve." } ``` #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 CreateEligibilityCheck403Error 403 response **Schema:** `CreateEligibilityCheck403ErrorResponseContent` #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 413 ContentTooLargeException 413 response **Schema:** `ContentTooLargeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 CreateEligibilityCheck429Error 429 response **Schema:** `CreateEligibilityCheck429ErrorResponseContent` **Example:** ```json { "eligibilitySearchId": "01a06d4a-a0fa-77d2-8b49-caa0546ed294", "errors": [ { "code": "42", "description": "Unable to Respond at Current Time", "followupAction": "Resubmission Allowed", "location": "PAYER" } ], "id": "ec_01a06d4a-a0fa-77d2-8b49-ca9a74c9888c", "message": "Unable to Respond at Current Time", "meta": { "outboundTraceId": "01M1PMN87VXMME0ZV6SHJP3B9X", "traceId": "01M1PMN87VXMME0ZV6SHJP3B9X" }, "payer": { "identification": "61101", "name": { "organization": "HUMANA" }, "type": "PAYER" }, "payerId": "61101", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984", "type": "PROVIDER" }, "subscriber": { "dateOfBirth": "1975-05-05", "memberId": "HUMANA123", "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *260916*1200*^*00501*000000001*0*P*`~GS*HB*STEDI*117151744*20260916*120000*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01M1PMN87VXMME0ZV6SHJP3B9X*20260916*120000~HL*1**20*1~NM1*PR*2*HUMANA*****PI*61101~AAA*Y**42*R~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*01M1PMN87VXMME0ZV6SHJP3B9X*3117151744~NM1*IL*1*Doe*Jane****MI*HUMANA123~DMG*D8*19750505~SE*12*0001~GE*1*1~IEA*1*000000001~" } ``` #### 451 EligibilityCheckNonUsOriginException 451 response **Schema:** `EligibilityCheckNonUsOriginExceptionResponseContent` **Properties:** - **`dependent`** (`object`): Information about the dependent from the eligibility check request. Note that the payer may return the dependent in the subscriber object instead. When present, this object will always include the dependent's name for identification, but many payers also include the date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the dependent's full legal name. - **`dependent.additionalInformation`** (`object`): Additional identifying information about the dependent. - **`dependent.additionalInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`dependent.additionalInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`dependent.additionalInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`dependent.additionalInformation.eligibilityCategory`** (`string`): The eligibility category for the dependent. - **`dependent.additionalInformation.familyUnitNumber`** (`string`): The family unit number. - **`dependent.additionalInformation.group`** (`object`): Additional information with description. - **`dependent.additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`dependent.additionalInformation.group.number`** (`string`) (required): The identification number. - **`dependent.additionalInformation.groupOrPolicyNumber`** (`string`): The group or policy number. - **`dependent.additionalInformation.identificationCardSerialNumber`** (`string`): Used when the identification card has a number in addition to the member ID. - **`dependent.additionalInformation.identityCardNumber`** (`string`): The identity card number. Present when this number differs from the member ID. - **`dependent.additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`dependent.additionalInformation.issueNumber`** (`string`): The issue number. - **`dependent.additionalInformation.mbi`** (`string`): The patient's Medicare Beneficiary Identifier (MBI). If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`dependent.additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`dependent.additionalInformation.medicalRecordId`** (`string`): The medical record identification number. - **`dependent.additionalInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`dependent.additionalInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`dependent.additionalInformation.plan`** (`object`): Additional information with description. - **`dependent.additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`dependent.additionalInformation.plan.number`** (`string`) (required): The identification number. - **`dependent.additionalInformation.planNetwork`** (`object`): Additional information with description. - **`dependent.additionalInformation.planNetwork.name`** (`string`): The name or description associated with `number`. - **`dependent.additionalInformation.planNetwork.number`** (`string`) (required): The identification number. - **`dependent.additionalInformation.priorIdentifierNumber`** (`string`): The prior identifier number. - **`dependent.additionalInformation.ssn`** (`string`): The patient's Social Security Number (SSN). - **`dependent.address`** (`object`): The address of the entity. - **`dependent.address.addressLine1`** (`string`): The first line of the address. - **`dependent.address.addressLine2`** (`string`): The second line of the address. - **`dependent.address.city`** (`string`): The city. - **`dependent.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependent.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`dependent.birthSequenceNumber`** (`integer`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`dependent.dateOfBirth`** (`string`): The patient's date of birth as an ISO 8601 `YYYY-MM-DD` string. For example, `1985-03-15` represents March 15, 1985. - **`dependent.dates`** (`object`): Contains the dates associated with patient attributes, as ISO 8601 date ranges. These provide temporal context for patient-specific data and eligibility periods. - **`dependent.dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.added.end`** (`string`): The inclusive end of the range. - **`dependent.dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.admission.end`** (`string`): The inclusive end of the range. - **`dependent.dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.certification`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.certification.end`** (`string`): The inclusive end of the range. - **`dependent.dates.certification.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.cobra`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.cobra.end`** (`string`): The inclusive end of the range. - **`dependent.dates.cobra.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.dateOfDeath`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.dateOfDeath.end`** (`string`): The inclusive end of the range. - **`dependent.dates.dateOfDeath.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`dependent.dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.discharge.end`** (`string`): The inclusive end of the range. - **`dependent.dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.effectiveDateOfChange`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.effectiveDateOfChange.end`** (`string`): The inclusive end of the range. - **`dependent.dates.effectiveDateOfChange.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.eligibility.end`** (`string`): The inclusive end of the range. - **`dependent.dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.enrollment`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.enrollment.end`** (`string`): The inclusive end of the range. - **`dependent.dates.enrollment.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.issue`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.issue.end`** (`string`): The inclusive end of the range. - **`dependent.dates.issue.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.plan.end`** (`string`): The inclusive end of the range. - **`dependent.dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.policy`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.policy.end`** (`string`): The inclusive end of the range. - **`dependent.dates.policy.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.premiumPaidToDate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.premiumPaidToDate.end`** (`string`): The inclusive end of the range. - **`dependent.dates.premiumPaidToDate.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.service.end`** (`string`): The inclusive end of the range. - **`dependent.dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`dependent.dates.status.end`** (`string`): The inclusive end of the range. - **`dependent.dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`dependent.gender`** (`string`): Code indicating the patient's gender. Payers may sometimes return other non-compliant values. - Allowed values: `FEMALE`, `MALE`, `UNKNOWN` - **`dependent.maintenance`** (`object`): Information indicating whether the payer signaled that the patient's identifying information differs from what you submitted. - **`dependent.maintenance.indicator`** (`string`): Indicates whether the payer signaled that the patient's identifying information differs from what you submitted. - Allowed values: `NONE`, `PAYER_INDICATED` - **`dependent.name`** (`object`) (required): A person's name. - **`dependent.name.person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`dependent.name.person.firstName`** (`string`): The person's first name. - **`dependent.name.person.lastName`** (`string`): The person's last name. - **`dependent.name.person.middleName`** (`string`): The person's middle name or initial. - **`dependent.name.person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`dependent.provider`** (`object`): Information about a provider associated with the related entity. - **`dependent.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`dependent.provider.reference`** (`string`): The provider's taxonomy code. - **`dependent.relationToSubscriber`** (`string`): The dependent's relationship to the subscriber. Payers may sometimes return other non-compliant values. - Allowed values: `SPOUSE`, `CHILD`, `EMPLOYEE`, `UNKNOWN`, `ORGAN_DONOR`, `CADAVER_DONOR`, `LIFE_PARTNER`, `OTHER_RELATIONSHIP` - **`eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`errors`** (`array of EligibilityCheckResponseError objects`): `AAA` rejection errors from the payer. [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) specify the reasons for the rejection and any recommended follow-up actions. - **`errors[].code`** (`string`) (required): The AAA reject reason code. - **`errors[].description`** (`string`) (required): The human-readable description of the error. - **`errors[].followupAction`** (`string`) (required): The recommended follow-up action. - **`errors[].location`** (`string`) (required): The location in the 271 response where an error occurred. Payers may sometimes return other non-compliant values. - Allowed values: `ENVELOPE`, `PAYER`, `PROVIDER`, `SUBSCRIBER`, `SUBSCRIBER_BENEFITS`, `DEPENDENT`, `DEPENDENT_BENEFITS` - **`errors[].possibleResolutions`** (`string`): Detailed guidance on possible ways to resolve the error. - **`id`** (`string`) (required): A globally unique identifier for this eligibility check across all Stedi accounts. It's formatted as `ec_`. For example: `ec_550e8400-e29b-41d4-a716-446655440000`. You can use this ID to track this eligibility check and to construct deep links to eligibility checks in the Stedi portal. - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.outboundTraceId`** (`string`): The transaction identifier Stedi assigns to the outbound request's `BHT03` element. Although this is a unique identifier, we recommend using `id` instead to identify and track eligibility checks. An eligibility check's `id` is guaranteed to be globally unique, and you can use it to deep link to the eligibility check's results within the Stedi portal. - **`meta.subscriberTraceNumbers`** (`array of EligibilityCheckSubscriberTraceNumber objects`): A unique identifier the payer may assign to the transaction. Stedi doesn't support setting a subscriber trace number in the eligibility check request because there is no need to include a trace number for real-time queries. - **`meta.subscriberTraceNumbers[].originatingCompanyIdentifier`** (`string`): The identifier of the organization that assigned the trace number. - **`meta.subscriberTraceNumbers[].referenceIdentification`** (`string`): The unique trace number assigned to the transaction. - **`meta.subscriberTraceNumbers[].secondaryReferenceIdentification`** (`string`): Identifies a subdivision within the organization that assigned the trace number. - **`meta.subscriberTraceNumbers[].type`** (`string`): Which transaction a trace number refers to. Payers may sometimes return other non-compliant values. - Allowed values: `CURRENT_TRANSACTION`, `REFERENCED_TRANSACTION` - **`meta.traceId`** (`string`): The transaction identifier from the response's `BHT03` element. Matches the request's `BHT03` if provided, otherwise matches the Stedi-generated `outboundTraceId`. - **`payer`** (`object`) (required): Information about the payer providing the benefits information. The response will always include the payer's business name and an identifier, such as the payer's tax ID. Most payers also include contact information. - **`payer.contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`payer.contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`payer.contacts[].emails`** (`array of strings`): The contact's email addresses. - **`payer.contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`payer.contacts[].name`** (`string`): The name of the contact person. - **`payer.contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`payer.contacts[].urls`** (`array of strings`): The contact's URLs. - **`payer.ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`payer.etin`** (`string`): Electronic Transmitter Identification Number. - **`payer.identification`** (`string`): Typically the identification the payer reported for itself in the 271 response (`NM109` with the `PI` qualifier). This value comes from the payer and may not match a [Stedi Payer Network](https://www.stedi.com/healthcare/network) ID; use the root-level `payerId` for the canonical payer ID. - **`payer.naicId`** (`string`): National Association of Insurance Commissioners Identification - **`payer.name`** (`any`): A name that is either a person or an organization. - **`payer.name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`payer.name (variant 1).person.firstName`** (`string`): The person's first name. - **`payer.name (variant 1).person.lastName`** (`string`): The person's last name. - **`payer.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`payer.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`payer.name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`payer.tin`** (`string`): The Federal Taxpayer Identification Number. - **`payer.type`** (`string`) (required): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `GATEWAY_PROVIDER`, `PLAN_SPONSOR`, `PAYER` - **`payerId`** (`string`): The primary payer ID from the [Stedi Payer Network](https://www.stedi.com/healthcare/network). This ID is consistent across eligibility and claims systems and matches the payer ID printed on the member's ID card. You can use it as the `payerId` in subsequent eligibility check requests. - **`plans`** (`array of EligibilityCheckPlan objects`): The patient's insurance plans, grouped by plan name. Each plan contains the benefits that apply to the patient. - **`plans[].benefits`** (`object`) (required): Benefit information from the payer, organized into categories like cost-sharing (co-insurance, deductibles, copayments), coverage details (exclusions, limitations), and eligibility statuses. - **`plans[].benefits.benefitDescription`** (`array of EligibilityCheckBenefitDescription objects`): A list of free-text benefit descriptions from the payer. Payers sometimes use this type to communicate information that's difficult to capture elsewhere in the response. The description is included as free text in `messages` or identifiers in `additionalInformation`. - **`plans[].benefits.benefitDescription[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.benefitDescription[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.benefitDescription[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.benefitDescription[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.benefitDescription[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.benefitDescription[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.benefitDescription[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDescription[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDescription[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.benefitDescription[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.benefitDescription[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.benefitDescription[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.benefitDescription[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.benefitDescription[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.benefitDescription[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.benefitDescription[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDescription[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDescription[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.benefitDescription[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.benefitDescription[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.benefitDescription[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.benefitDescription[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.benefitDescription[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDescription[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDescription[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDescription[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.benefitDescription[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.benefitDescription[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.benefitDescription[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.benefitDescription[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.benefitDescription[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.benefitDescription[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.benefitDescription[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.benefitDescription[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.benefitDescription[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.benefitDescription[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.benefitDescription[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.benefitDescription[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.benefitDescription[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.benefitDescription[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.benefitDescription[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.benefitDescription[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.benefitDescription[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.benefitDescription[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.benefitDescription[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.benefitDescription[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.benefitDescription[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.benefitDescription[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.benefitDescription[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.benefitDescription[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.benefitDescription[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.benefitDescription[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.benefitDescription[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.benefitDescription[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.benefitDescription[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.benefitDescription[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.benefitDescription[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.benefitDescription[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.benefitDescription[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.benefitDescription[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.benefitDescription[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.benefitDescription[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.benefitDescription[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.benefitDescription[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.benefitDescription[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.benefitDescription[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.benefitDescription[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.benefitDescription[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDescription[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.benefitDescription[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDescription[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDescription[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDescription[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDescription[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDescription[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDescription[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.benefitDescription[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.benefitDescription[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.benefitDisclaimer`** (`array of EligibilityCheckBenefitDisclaimer objects`): A list of disclaimers from the payer. A legal or advisory disclaimer attached to the benefit information. The X12 standard discourages use of this type, but many commercial payers still send disclaimers. When present, the disclaimer text arrives in `messages`, and there should be only one disclaimer per individual response. - **`plans[].benefits.benefitDisclaimer[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.benefitDisclaimer[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.benefitDisclaimer[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.benefitDisclaimer[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.benefitDisclaimer[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.benefitDisclaimer[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.benefitDisclaimer[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.benefitDisclaimer[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.benefitDisclaimer[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.benefitDisclaimer[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.benefitDisclaimer[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.benefitDisclaimer[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.benefitDisclaimer[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.benefitDisclaimer[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.benefitDisclaimer[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.benefitDisclaimer[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.benefitDisclaimer[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.benefitDisclaimer[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.benefitDisclaimer[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.benefitDisclaimer[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.benefitDisclaimer[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.benefitDisclaimer[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.benefitDisclaimer[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.benefitDisclaimer[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.benefitDisclaimer[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.benefitDisclaimer[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.benefitDisclaimer[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.benefitDisclaimer[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.benefitDisclaimer[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDisclaimer[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.benefitDisclaimer[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDisclaimer[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDisclaimer[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDisclaimer[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.benefitDisclaimer[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.benefitDisclaimer[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.benefitDisclaimer[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.benefitDisclaimer[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.benefitDisclaimer[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.cannotProcess`** (`array of EligibilityCheckCannotProcess objects`): A list of entries indicating the payer couldn't process your request. Indicates that the payer couldn't process your request. A common cause is requesting benefits information for a service type or procedure code the payer doesn't support. - **`plans[].benefits.cannotProcess[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.cannotProcess[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.cannotProcess[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.cannotProcess[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.cannotProcess[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.cannotProcess[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.cannotProcess[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cannotProcess[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.cannotProcess[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.cannotProcess[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.cannotProcess[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.cannotProcess[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.cannotProcess[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.cannotProcess[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.cannotProcess[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.cannotProcess[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cannotProcess[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.cannotProcess[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.cannotProcess[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.cannotProcess[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.cannotProcess[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.cannotProcess[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.cannotProcess[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cannotProcess[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cannotProcess[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cannotProcess[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.cannotProcess[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.cannotProcess[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.cannotProcess[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.cannotProcess[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.cannotProcess[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.cannotProcess[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.cannotProcess[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.cannotProcess[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.cannotProcess[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.cannotProcess[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.cannotProcess[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.cannotProcess[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.cannotProcess[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.cannotProcess[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.cannotProcess[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.cannotProcess[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.cannotProcess[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.cannotProcess[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.cannotProcess[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.cannotProcess[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.cannotProcess[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.cannotProcess[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.cannotProcess[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.cannotProcess[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.cannotProcess[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.cannotProcess[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.cannotProcess[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.cannotProcess[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.cannotProcess[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.cannotProcess[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.cannotProcess[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.cannotProcess[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.cannotProcess[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.cannotProcess[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.cannotProcess[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.cannotProcess[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.cannotProcess[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.cannotProcess[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.cannotProcess[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.cannotProcess[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.cannotProcess[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.cannotProcess[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cannotProcess[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.cannotProcess[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cannotProcess[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cannotProcess[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cannotProcess[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cannotProcess[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cannotProcess[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cannotProcess[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.cannotProcess[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.cannotProcess[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.cardReportedStolen`** (`array of EligibilityCheckCardReportedStolen objects`): A list of entries indicating the patient's card has been reported lost or stolen. This typically means that the payer has flagged the patient's member ID to prevent identity theft. The patient may still have active coverage, but you likely won't be able to run transactions with the patient's information until they resolve the issue. - **`plans[].benefits.cardReportedStolen[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.cardReportedStolen[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.cardReportedStolen[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.cardReportedStolen[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.cardReportedStolen[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.cardReportedStolen[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cardReportedStolen[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.cardReportedStolen[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.cardReportedStolen[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.cardReportedStolen[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.cardReportedStolen[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.cardReportedStolen[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.cardReportedStolen[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.cardReportedStolen[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.cardReportedStolen[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.cardReportedStolen[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.cardReportedStolen[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.cardReportedStolen[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.cardReportedStolen[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.cardReportedStolen[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.cardReportedStolen[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.cardReportedStolen[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.cardReportedStolen[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.cardReportedStolen[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.cardReportedStolen[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.cardReportedStolen[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.cardReportedStolen[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.cardReportedStolen[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.cardReportedStolen[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.cardReportedStolen[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.cardReportedStolen[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.cardReportedStolen[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.cardReportedStolen[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.cardReportedStolen[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.cardReportedStolen[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.cardReportedStolen[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.cardReportedStolen[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.cardReportedStolen[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.cardReportedStolen[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.cardReportedStolen[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.cardReportedStolen[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.cardReportedStolen[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.cardReportedStolen[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.cardReportedStolen[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.cardReportedStolen[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.cardReportedStolen[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.cardReportedStolen[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.cardReportedStolen[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cardReportedStolen[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.cardReportedStolen[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cardReportedStolen[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cardReportedStolen[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cardReportedStolen[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.cardReportedStolen[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.cardReportedStolen[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.cardReportedStolen[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.cardReportedStolen[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.cardReportedStolen[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.coInsurance`** (`array of EligibilityCheckCoInsurance objects`): A list of co-insurance benefit entries from the payer. The `percent` is the patient's share of costs, expressed as a decimal (such as `0.8` for 80%). The decimal precision reflects what the payer sent. A value of `0` indicates the payer reported no co-insurance responsibility. - **`plans[].benefits.coInsurance[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.coInsurance[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.coInsurance[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.coInsurance[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.coInsurance[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.coInsurance[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.coInsurance[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coInsurance[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.coInsurance[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.coInsurance[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.coInsurance[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.coInsurance[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.coInsurance[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.coInsurance[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.coInsurance[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.coInsurance[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coInsurance[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.coInsurance[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.coInsurance[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.coInsurance[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.coInsurance[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.coInsurance[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coInsurance[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coInsurance[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coInsurance[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.coInsurance[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.coInsurance[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.coInsurance[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.coInsurance[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.coInsurance[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.coInsurance[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.coInsurance[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.coInsurance[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.coInsurance[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.coInsurance[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.coInsurance[].percent`** (`string`) (required): The percentage value for this benefit, expressed as a decimal (e.g., 0.80 for 80%). - **`plans[].benefits.coInsurance[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.coInsurance[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.coInsurance[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.coInsurance[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.coInsurance[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.coInsurance[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.coInsurance[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.coInsurance[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.coInsurance[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.coInsurance[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.coInsurance[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.coInsurance[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.coInsurance[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.coInsurance[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.coInsurance[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.coInsurance[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.coInsurance[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.coInsurance[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.coInsurance[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.coInsurance[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.coInsurance[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.coInsurance[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.coInsurance[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.coInsurance[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.coInsurance[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.coInsurance[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.coInsurance[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.coInsurance[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.coInsurance[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.coInsurance[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.coInsurance[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.coInsurance[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.coInsurance[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.coInsurance[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.coInsurance[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coInsurance[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.coInsurance[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coInsurance[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coInsurance[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coInsurance[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coInsurance[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coInsurance[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coInsurance[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.coInsurance[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.coInsurance[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.coInsurance[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.coPayment`** (`array of EligibilityCheckCoPayment objects`): A list of copayment benefit entries from the payer. The `amount` is the fixed amount the patient pays for a service. The decimal precision reflects what the payer sent (for example, `25.0` or `40`). - **`plans[].benefits.coPayment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.coPayment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.coPayment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.coPayment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.coPayment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.coPayment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.coPayment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coPayment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.coPayment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.coPayment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.coPayment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.coPayment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.coPayment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.coPayment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.coPayment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.coPayment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coPayment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.coPayment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.coPayment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.coPayment[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.coPayment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.coPayment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.coPayment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coPayment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coPayment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coPayment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.coPayment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.coPayment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.coPayment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.coPayment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.coPayment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.coPayment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.coPayment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.coPayment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.coPayment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.coPayment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.coPayment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.coPayment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.coPayment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.coPayment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.coPayment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.coPayment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.coPayment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.coPayment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.coPayment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.coPayment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.coPayment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.coPayment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.coPayment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.coPayment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.coPayment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.coPayment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.coPayment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.coPayment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.coPayment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.coPayment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.coPayment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.coPayment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.coPayment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.coPayment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.coPayment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.coPayment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.coPayment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.coPayment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.coPayment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.coPayment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.coPayment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.coPayment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.coPayment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.coPayment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.coPayment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.coPayment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.coPayment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.coPayment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.coPayment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coPayment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.coPayment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coPayment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coPayment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coPayment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coPayment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coPayment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coPayment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.coPayment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.coPayment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.coPayment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.contactFollowingEntityForInformation`** (`array of EligibilityCheckContactFollowingEntityForInformation objects`): A list of entries directing you to contact another entity for benefit information. Indicates that the payer can't supply the information you requested and is directing you to another entity. The entity's information is listed in the `relatedEntities` array. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.contactFollowingEntityForInformation[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.contactFollowingEntityForInformation[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.contactFollowingEntityForInformation[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.contactFollowingEntityForInformation[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.contactFollowingEntityForInformation[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.contactFollowingEntityForInformation[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.contactFollowingEntityForInformation[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.contactFollowingEntityForInformation[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.contactFollowingEntityForInformation[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.contactFollowingEntityForInformation[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.contactFollowingEntityForInformation[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.contactFollowingEntityForInformation[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.contactFollowingEntityForInformation[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.contactFollowingEntityForInformation[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.contactFollowingEntityForInformation[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.contactFollowingEntityForInformation[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.contactFollowingEntityForInformation[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.contactFollowingEntityForInformation[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.contactFollowingEntityForInformation[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.contactFollowingEntityForInformation[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.contactFollowingEntityForInformation[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.contactFollowingEntityForInformation[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.contactFollowingEntityForInformation[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.contactFollowingEntityForInformation[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.contactFollowingEntityForInformation[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.costContainment`** (`array of EligibilityCheckCostContainment objects`): A list of cost containment benefit entries from the payer. Cost containment refers to rules a health plan may have in place to control the cost of care. This benefit is typically included when the patient has Medicaid coverage. The `amount` represents the total the patient pays out-of-pocket before benefits begin. The decimal precision reflects what the payer sent (for example, `500.0` or `500`). - **`plans[].benefits.costContainment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.costContainment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.costContainment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.costContainment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.costContainment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.costContainment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.costContainment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.costContainment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.costContainment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.costContainment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.costContainment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.costContainment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.costContainment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.costContainment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.costContainment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.costContainment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.costContainment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.costContainment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.costContainment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.costContainment[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.costContainment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.costContainment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.costContainment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.costContainment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.costContainment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.costContainment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.costContainment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.costContainment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.costContainment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.costContainment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.costContainment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.costContainment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.costContainment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.costContainment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.costContainment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.costContainment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.costContainment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.costContainment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.costContainment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.costContainment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.costContainment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.costContainment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.costContainment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.costContainment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.costContainment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.costContainment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.costContainment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.costContainment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.costContainment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.costContainment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.costContainment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.costContainment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.costContainment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.costContainment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.costContainment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.costContainment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.costContainment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.costContainment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.costContainment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.costContainment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.costContainment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.costContainment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.costContainment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.costContainment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.costContainment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.costContainment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.costContainment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.costContainment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.costContainment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.costContainment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.costContainment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.costContainment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.costContainment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.costContainment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.costContainment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.costContainment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.costContainment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.costContainment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.costContainment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.costContainment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.costContainment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.costContainment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.costContainment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.costContainment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.costContainment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.costContainment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.coverageBasis`** (`array of EligibilityCheckCoverageBasis objects`): A list of coverage basis entries from the payer. Describes the financial basis of the patient's health plan or eligibility for enrollment. For example, payers may use this type to indicate that a plan is fully insured, meaning the payer assumes full financial responsibility for medical claims. Payers may also use this type to indicate carve-out benefits, such as when the patient is enrolled in state-managed health programs, or to explain why a member was allowed to enroll in the plan (such as age range or having a disability). The detail is usually included as free text in `messages` or identifiers in `additionalInformation`. - **`plans[].benefits.coverageBasis[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.coverageBasis[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.coverageBasis[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.coverageBasis[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.coverageBasis[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.coverageBasis[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.coverageBasis[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coverageBasis[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.coverageBasis[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.coverageBasis[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.coverageBasis[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.coverageBasis[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.coverageBasis[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.coverageBasis[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.coverageBasis[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.coverageBasis[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.coverageBasis[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.coverageBasis[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.coverageBasis[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.coverageBasis[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.coverageBasis[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.coverageBasis[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.coverageBasis[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.coverageBasis[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.coverageBasis[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.coverageBasis[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.coverageBasis[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.coverageBasis[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.coverageBasis[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.coverageBasis[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.coverageBasis[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.coverageBasis[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.coverageBasis[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.coverageBasis[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.coverageBasis[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.coverageBasis[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.coverageBasis[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.coverageBasis[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.coverageBasis[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.coverageBasis[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.coverageBasis[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.coverageBasis[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.coverageBasis[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.coverageBasis[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.coverageBasis[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.coverageBasis[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.coverageBasis[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.coverageBasis[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.coverageBasis[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.coverageBasis[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.coverageBasis[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.coverageBasis[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.coverageBasis[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.coverageBasis[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.coverageBasis[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.coverageBasis[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.coverageBasis[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.coverageBasis[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.coverageBasis[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.coverageBasis[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.coverageBasis[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.coverageBasis[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.coverageBasis[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.coverageBasis[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.coverageBasis[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.coverageBasis[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.coverageBasis[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.coverageBasis[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coverageBasis[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.coverageBasis[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coverageBasis[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coverageBasis[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coverageBasis[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.coverageBasis[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.coverageBasis[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.coverageBasis[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.coverageBasis[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.coverageBasis[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.deductible`** (`array of EligibilityCheckDeductible objects`): A list of deductible benefit entries from the payer. The `amount` is what the patient must pay before the plan begins covering costs. The decimal precision reflects what the payer sent (for example, `1500.0` or `1000`). Check `timePeriod` to determine what the amount represents. A calendar-year deductible is the patient's total for the year, while a remaining deductible is the amount still owed before the plan pays. - **`plans[].benefits.deductible[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.deductible[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.deductible[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.deductible[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.deductible[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.deductible[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.deductible[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.deductible[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.deductible[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.deductible[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.deductible[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.deductible[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.deductible[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.deductible[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.deductible[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.deductible[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.deductible[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.deductible[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.deductible[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.deductible[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.deductible[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.deductible[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.deductible[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.deductible[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.deductible[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.deductible[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.deductible[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.deductible[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.deductible[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.deductible[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.deductible[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.deductible[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.deductible[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.deductible[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.deductible[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.deductible[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.deductible[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.deductible[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.deductible[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.deductible[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.deductible[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.deductible[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.deductible[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.deductible[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.deductible[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.deductible[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.deductible[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.deductible[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.deductible[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.deductible[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.deductible[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.deductible[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.deductible[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.deductible[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.deductible[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.deductible[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.deductible[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.deductible[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.deductible[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.deductible[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.deductible[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.deductible[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.deductible[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.deductible[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.deductible[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.deductible[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.deductible[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.deductible[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.deductible[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.deductible[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.deductible[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.deductible[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.deductible[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.deductible[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.deductible[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.deductible[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.deductible[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.deductible[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.deductible[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.deductible[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.deductible[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.deductible[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.deductible[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.deductible[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.deductible[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.deductible[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.exclusions`** (`array of EligibilityCheckExclusion objects`): A list of services or conditions the plan excludes from coverage. An exclusion is a service or condition the plan doesn't cover for any patient. This is different from a `nonCovered` entry, which reports that this patient doesn't have coverage for a specific service you submitted in the request. - **`plans[].benefits.exclusions[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.exclusions[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.exclusions[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.exclusions[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.exclusions[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.exclusions[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.exclusions[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.exclusions[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.exclusions[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.exclusions[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.exclusions[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.exclusions[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.exclusions[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.exclusions[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.exclusions[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.exclusions[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.exclusions[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.exclusions[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.exclusions[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.exclusions[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.exclusions[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.exclusions[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.exclusions[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.exclusions[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.exclusions[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.exclusions[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.exclusions[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.exclusions[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.exclusions[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.exclusions[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.exclusions[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.exclusions[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.exclusions[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.exclusions[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.exclusions[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.exclusions[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.exclusions[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.exclusions[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.exclusions[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.exclusions[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.exclusions[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.exclusions[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.exclusions[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.exclusions[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.exclusions[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.exclusions[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.exclusions[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.exclusions[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.exclusions[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.exclusions[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.exclusions[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.exclusions[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.exclusions[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.exclusions[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.exclusions[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.exclusions[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.exclusions[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.exclusions[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.exclusions[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.exclusions[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.exclusions[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.exclusions[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.exclusions[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.exclusions[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.exclusions[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.exclusions[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.exclusions[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.exclusions[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.exclusions[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.exclusions[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.exclusions[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.exclusions[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.exclusions[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.exclusions[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.exclusions[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.exclusions[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.exclusions[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.exclusions[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.exclusions[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.exclusions[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.exclusions[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.exclusions[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.exclusions[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.healthCareFacility`** (`array of EligibilityCheckHealthCareFacility objects`): A list of health care facility information relevant to the patient's benefits. These typically indicate an institution or provider network the patient is required or expected to use. The facility's information is available in the `relatedEntities` array. Rarely returned. - **`plans[].benefits.healthCareFacility[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.healthCareFacility[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.healthCareFacility[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.healthCareFacility[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.healthCareFacility[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.healthCareFacility[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.healthCareFacility[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.healthCareFacility[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.healthCareFacility[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.healthCareFacility[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.healthCareFacility[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.healthCareFacility[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.healthCareFacility[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.healthCareFacility[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.healthCareFacility[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.healthCareFacility[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.healthCareFacility[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.healthCareFacility[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.healthCareFacility[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.healthCareFacility[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.healthCareFacility[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.healthCareFacility[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.healthCareFacility[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.healthCareFacility[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.healthCareFacility[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.healthCareFacility[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.healthCareFacility[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.healthCareFacility[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.healthCareFacility[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.healthCareFacility[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.healthCareFacility[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.healthCareFacility[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.healthCareFacility[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.healthCareFacility[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.healthCareFacility[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.healthCareFacility[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.healthCareFacility[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.healthCareFacility[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.healthCareFacility[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.healthCareFacility[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.healthCareFacility[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.healthCareFacility[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.healthCareFacility[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.healthCareFacility[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.healthCareFacility[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.healthCareFacility[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.healthCareFacility[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.healthCareFacility[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.healthCareFacility[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.healthCareFacility[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.healthCareFacility[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.healthCareFacility[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.healthCareFacility[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.healthCareFacility[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.healthCareFacility[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.healthCareFacility[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.healthCareFacility[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.healthCareFacility[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.healthCareFacility[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.healthCareFacility[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.healthCareFacility[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.healthCareFacility[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.healthCareFacility[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.healthCareFacility[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.healthCareFacility[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.healthCareFacility[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.healthCareFacility[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.healthCareFacility[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.healthCareFacility[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.healthCareFacility[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.healthCareFacility[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.healthCareFacility[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.healthCareFacility[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.healthCareFacility[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.healthCareFacility[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries`** (`object`): Benefit entries that Stedi marked as invalid. Stedi marks entries when they're missing required data, like a co-insurance benefit without a percentage or a deductible without an amount. Stedi also marks entries when they have unexpected data, like a co-payment with a percentage instead of an amount. - **`plans[].benefits.invalidEntries.coInsurance`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid co-insurance entries. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.coInsurance[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.coInsurance[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.coInsurance[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.coInsurance[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.coInsurance[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coInsurance[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coInsurance[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.coInsurance[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.coInsurance[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.coInsurance[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.coInsurance[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.coInsurance[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.coInsurance[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.coInsurance[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.coInsurance[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.coInsurance[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.coInsurance[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.coInsurance[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.coInsurance[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.coInsurance[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.coInsurance[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.coInsurance[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.coInsurance[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.coInsurance[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.coInsurance[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.coInsurance[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.coInsurance[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.coInsurance[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.coInsurance[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coInsurance[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coInsurance[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coInsurance[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.coInsurance[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.coInsurance[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.coInsurance[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.coPayment`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid co-payment entries. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.coPayment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.coPayment[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.coPayment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.coPayment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.coPayment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.coPayment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.coPayment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.coPayment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.coPayment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.coPayment[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.coPayment[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.coPayment[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.coPayment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.coPayment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.coPayment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.coPayment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.coPayment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.coPayment[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.coPayment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.coPayment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.coPayment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.coPayment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.coPayment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.coPayment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.coPayment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.coPayment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.coPayment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.coPayment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.coPayment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coPayment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.coPayment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coPayment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coPayment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coPayment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.coPayment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.coPayment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.coPayment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.coPayment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.coPayment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.coPayment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.costContainment`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid cost containment entries. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.costContainment[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.costContainment[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.costContainment[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.costContainment[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.costContainment[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.costContainment[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.costContainment[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.costContainment[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.costContainment[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.costContainment[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.costContainment[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.costContainment[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.costContainment[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.costContainment[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.costContainment[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.costContainment[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.costContainment[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.costContainment[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.costContainment[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.costContainment[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.costContainment[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.costContainment[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.costContainment[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.costContainment[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.costContainment[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.costContainment[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.costContainment[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.costContainment[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.costContainment[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.costContainment[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.costContainment[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.costContainment[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.costContainment[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.costContainment[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.costContainment[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.costContainment[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.costContainment[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.costContainment[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.costContainment[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.costContainment[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.deductible`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid deductible entries. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.deductible[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.deductible[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.deductible[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.deductible[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.deductible[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.deductible[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.deductible[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.deductible[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.deductible[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.deductible[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.deductible[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.deductible[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.deductible[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.deductible[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.deductible[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.deductible[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.deductible[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.deductible[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.deductible[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.deductible[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.deductible[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.deductible[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.deductible[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.deductible[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.deductible[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.deductible[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.deductible[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.deductible[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.deductible[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.deductible[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.deductible[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.deductible[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.deductible[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.deductible[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.deductible[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.deductible[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.deductible[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.deductible[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.deductible[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.deductible[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.deductible[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.limitations`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid limitation entries. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.limitations[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.limitations[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.limitations[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.limitations[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.limitations[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.limitations[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.limitations[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.limitations[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.limitations[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.limitations[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.limitations[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.limitations[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.limitations[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.limitations[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.limitations[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.limitations[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.limitations[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.limitations[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.limitations[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.limitations[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.limitations[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.limitations[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.limitations[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.limitations[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.limitations[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.limitations[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.limitations[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.limitations[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.limitations[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.limitations[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.limitations[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.limitations[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.limitations[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.limitations[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.limitations[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.limitations[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.limitations[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.limitations[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.limitations[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.limitations[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.limitations[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.outOfPocket`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid out-of-pocket entries. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.outOfPocket[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.outOfPocket[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.outOfPocket[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.outOfPocket[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.outOfPocket[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.outOfPocket[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.outOfPocket[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.outOfPocket[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.outOfPocket[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.outOfPocket[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.outOfPocket[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.outOfPocket[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.outOfPocket[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.outOfPocket[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.outOfPocket[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.outOfPocket[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.outOfPocket[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.outOfPocket[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.outOfPocket[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.outOfPocket[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.outOfPocket[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.outOfPocket[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.outOfPocket[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.outOfPocket[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.outOfPocket[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.outOfPocket[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.outOfPocket[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.outOfPocket[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.outOfPocket[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.outOfPocket[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.outOfPocket[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.outOfPocket[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.invalidEntries.spendDown`** (`array of EligibilityCheckInvalidBenefit objects`): Invalid spend down entries. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.invalidEntries.spendDown[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.invalidEntries.spendDown[].amount`** (`string`): The monetary amount, if present. - **`plans[].benefits.invalidEntries.spendDown[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.invalidEntries.spendDown[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.invalidEntries.spendDown[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.invalidEntries.spendDown[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.invalidEntries.spendDown[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.invalidEntries.spendDown[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.invalidEntries.spendDown[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.invalidEntries.spendDown[].invalidReasons`** (`array of EligibilityCheckInvalidEntryReason objects`) (required): Reasons explaining why this entry is invalid. - **`plans[].benefits.invalidEntries.spendDown[].invalidReasons[].code`** (`string`) (required): Machine-readable codes identifying why a benefit entry is invalid. Payers may sometimes return other non-compliant values. - Allowed values: `MISSING_AMOUNT`, `MISSING_PERCENT`, `UNEXPECTED_AMOUNT`, `UNEXPECTED_PERCENT` - **`plans[].benefits.invalidEntries.spendDown[].invalidReasons[].description`** (`string`) (required): A human-readable description of the validation issue. - **`plans[].benefits.invalidEntries.spendDown[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.invalidEntries.spendDown[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.invalidEntries.spendDown[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.invalidEntries.spendDown[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.invalidEntries.spendDown[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.invalidEntries.spendDown[].percent`** (`string`): The percentage, if present. - **`plans[].benefits.invalidEntries.spendDown[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.invalidEntries.spendDown[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.invalidEntries.spendDown[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.invalidEntries.spendDown[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.invalidEntries.spendDown[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.invalidEntries.spendDown[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.invalidEntries.spendDown[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.invalidEntries.spendDown[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.invalidEntries.spendDown[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.invalidEntries.spendDown[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.invalidEntries.spendDown[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.spendDown[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.invalidEntries.spendDown[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.spendDown[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.spendDown[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.spendDown[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.invalidEntries.spendDown[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.invalidEntries.spendDown[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.invalidEntries.spendDown[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.invalidEntries.spendDown[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.invalidEntries.spendDown[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.invalidEntries.spendDown[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.limitations`** (`array of EligibilityCheckLimitation objects`): A list of benefit limitation entries, expressed as an amount, percent, or quantity. Dental and vision plans often use this benefit type to specify an annual maximum benefit amount. The Affordable Care Act prevents most commercial health plans from imposing limits on annual or lifetime benefit amounts, but this generally doesn't apply to government health plans and some commercial health plans may be exempt. When present, the `amount` indicates the maximum benefit amount the plan allocates to the patient. The `messages` array often includes values like "ANNUAL MAXIMUM". - **`plans[].benefits.limitations[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.limitations[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.limitations[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.limitations[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.limitations[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.limitations[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.limitations[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.limitations[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.limitations[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.limitations[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.limitations[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.limitations[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.limitations[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.limitations[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.limitations[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.limitations[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.limitations[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.limitations[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.limitations[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.limitations[].amount`** (`string`): The monetary amount for this limitation. - **`plans[].benefits.limitations[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.limitations[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.limitations[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.limitations[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.limitations[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.limitations[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.limitations[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.limitations[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.limitations[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.limitations[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.limitations[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.limitations[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.limitations[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.limitations[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.limitations[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.limitations[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.limitations[].percent`** (`string`): The percentage value for this limitation, expressed as a decimal (e.g., 0.80 for 80%). - **`plans[].benefits.limitations[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.limitations[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.limitations[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.limitations[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.limitations[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.limitations[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.limitations[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.limitations[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.limitations[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.limitations[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.limitations[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.limitations[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.limitations[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.limitations[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.limitations[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.limitations[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.limitations[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.limitations[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.limitations[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.limitations[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.limitations[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.limitations[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.limitations[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.limitations[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.limitations[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.limitations[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.limitations[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.limitations[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.limitations[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.limitations[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.limitations[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.limitations[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.limitations[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.limitations[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.limitations[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.limitations[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.limitations[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.limitations[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.limitations[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.limitations[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.limitations[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.limitations[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.limitations[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.limitations[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.limitations[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.limitations[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.limitations[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.limitations[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.limitations[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.limitations[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.managedCareCoordinator`** (`array of EligibilityCheckManagedCareCoordinator objects`): A list of managed care coordinator information for the patient. When present, the care coordinator's details are in the `relatedEntities` array. - **`plans[].benefits.managedCareCoordinator[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.managedCareCoordinator[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.managedCareCoordinator[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.managedCareCoordinator[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.managedCareCoordinator[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.managedCareCoordinator[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.managedCareCoordinator[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.managedCareCoordinator[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.managedCareCoordinator[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.managedCareCoordinator[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.managedCareCoordinator[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.managedCareCoordinator[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.managedCareCoordinator[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.managedCareCoordinator[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.managedCareCoordinator[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.managedCareCoordinator[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.managedCareCoordinator[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.managedCareCoordinator[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.managedCareCoordinator[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.managedCareCoordinator[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.managedCareCoordinator[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.managedCareCoordinator[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.managedCareCoordinator[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.managedCareCoordinator[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.managedCareCoordinator[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.managedCareCoordinator[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.managedCareCoordinator[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.managedCareCoordinator[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.managedCareCoordinator[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.managedCareCoordinator[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.managedCareCoordinator[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.managedCareCoordinator[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.managedCareCoordinator[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.managedCareCoordinator[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.managedCareCoordinator[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.managedCareCoordinator[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.managedCareCoordinator[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.managedCareCoordinator[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.managedCareCoordinator[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.nonCovered`** (`array of EligibilityCheckNonCovered objects`): A list of non-covered services for the patient. Indicates that the patient's plan doesn't cover a specific service type you submitted in the eligibility check. Note that the absence of a `nonCovered` entry doesn't mean that a specific service is covered. - **`plans[].benefits.nonCovered[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.nonCovered[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.nonCovered[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.nonCovered[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.nonCovered[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.nonCovered[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.nonCovered[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.nonCovered[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.nonCovered[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.nonCovered[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.nonCovered[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.nonCovered[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.nonCovered[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.nonCovered[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.nonCovered[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.nonCovered[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.nonCovered[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.nonCovered[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.nonCovered[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.nonCovered[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.nonCovered[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.nonCovered[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.nonCovered[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.nonCovered[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.nonCovered[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.nonCovered[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.nonCovered[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.nonCovered[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.nonCovered[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.nonCovered[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.nonCovered[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.nonCovered[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.nonCovered[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.nonCovered[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.nonCovered[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.nonCovered[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.nonCovered[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.nonCovered[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.nonCovered[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.nonCovered[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.nonCovered[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.nonCovered[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.nonCovered[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.nonCovered[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.nonCovered[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.nonCovered[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.nonCovered[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.nonCovered[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.nonCovered[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.nonCovered[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.nonCovered[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.nonCovered[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.nonCovered[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.nonCovered[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.nonCovered[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.nonCovered[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.nonCovered[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.nonCovered[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.nonCovered[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.nonCovered[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.nonCovered[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.nonCovered[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.nonCovered[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.nonCovered[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.nonCovered[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.nonCovered[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.nonCovered[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.nonCovered[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.nonCovered[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.nonCovered[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.nonCovered[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.nonCovered[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.nonCovered[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.nonCovered[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.nonCovered[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.nonCovered[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.nonCovered[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.nonCovered[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.nonCovered[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.nonCovered[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.nonCovered[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.nonCovered[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.notDeemedMedicalNecessity`** (`array of EligibilityCheckNotDeemedMedicalNecessity objects`): A list of services the payer determined aren't medically necessary for the patient. Indicates the payer has determined this service isn't medically necessary and won't cover it on that basis. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.notDeemedMedicalNecessity[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.notDeemedMedicalNecessity[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.notDeemedMedicalNecessity[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.notDeemedMedicalNecessity[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.notDeemedMedicalNecessity[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.notDeemedMedicalNecessity[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.notDeemedMedicalNecessity[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.notDeemedMedicalNecessity[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.notDeemedMedicalNecessity[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.notDeemedMedicalNecessity[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.notDeemedMedicalNecessity[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.notDeemedMedicalNecessity[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.notDeemedMedicalNecessity[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.notDeemedMedicalNecessity[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.notDeemedMedicalNecessity[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.notDeemedMedicalNecessity[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.notDeemedMedicalNecessity[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.notDeemedMedicalNecessity[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.notDeemedMedicalNecessity[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.notDeemedMedicalNecessity[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.notDeemedMedicalNecessity[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.notDeemedMedicalNecessity[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.notDeemedMedicalNecessity[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.notDeemedMedicalNecessity[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.notDeemedMedicalNecessity[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.otherOrAdditionalPayer`** (`array of EligibilityCheckOtherOrAdditionalPayer objects`): A list of other payers with coverage responsibility for the patient. Indicates another payer that has coverage responsibility for the patient. This is the signal for coordination of benefits (COB) scenarios. The other payer's details are available in the `relatedEntities` array. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.otherOrAdditionalPayer[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.otherOrAdditionalPayer[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.otherOrAdditionalPayer[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.otherOrAdditionalPayer[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.otherOrAdditionalPayer[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherOrAdditionalPayer[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherOrAdditionalPayer[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.otherOrAdditionalPayer[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.otherOrAdditionalPayer[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.otherOrAdditionalPayer[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.otherOrAdditionalPayer[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.otherOrAdditionalPayer[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.otherOrAdditionalPayer[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.otherOrAdditionalPayer[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.otherOrAdditionalPayer[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.otherOrAdditionalPayer[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.otherOrAdditionalPayer[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.otherOrAdditionalPayer[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.otherOrAdditionalPayer[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.otherOrAdditionalPayer[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.otherOrAdditionalPayer[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.otherOrAdditionalPayer[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.otherOrAdditionalPayer[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherOrAdditionalPayer[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherOrAdditionalPayer[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherOrAdditionalPayer[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.otherOrAdditionalPayer[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.otherOrAdditionalPayer[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.otherSourceOfData`** (`array of EligibilityCheckOtherSourceOfData objects`): A list of entries indicating the benefit information originates from another source. Indicates the information provided came from a source other than the payer's own system. Rarely returned. - **`plans[].benefits.otherSourceOfData[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.otherSourceOfData[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.otherSourceOfData[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.otherSourceOfData[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.otherSourceOfData[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.otherSourceOfData[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherSourceOfData[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.otherSourceOfData[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.otherSourceOfData[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.otherSourceOfData[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.otherSourceOfData[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.otherSourceOfData[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.otherSourceOfData[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.otherSourceOfData[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.otherSourceOfData[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.otherSourceOfData[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.otherSourceOfData[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.otherSourceOfData[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.otherSourceOfData[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.otherSourceOfData[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.otherSourceOfData[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.otherSourceOfData[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.otherSourceOfData[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.otherSourceOfData[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.otherSourceOfData[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.otherSourceOfData[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.otherSourceOfData[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.otherSourceOfData[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.otherSourceOfData[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.otherSourceOfData[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.otherSourceOfData[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.otherSourceOfData[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.otherSourceOfData[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.otherSourceOfData[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.otherSourceOfData[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.otherSourceOfData[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.otherSourceOfData[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.otherSourceOfData[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.otherSourceOfData[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.otherSourceOfData[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.otherSourceOfData[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.otherSourceOfData[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.otherSourceOfData[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.otherSourceOfData[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.otherSourceOfData[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.otherSourceOfData[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.otherSourceOfData[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.otherSourceOfData[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherSourceOfData[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.otherSourceOfData[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherSourceOfData[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherSourceOfData[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherSourceOfData[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.otherSourceOfData[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.otherSourceOfData[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.otherSourceOfData[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.otherSourceOfData[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.otherSourceOfData[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.outOfPocket`** (`array of EligibilityCheckOutOfPocket objects`): A list of out-of-pocket maximum benefit entries from the payer. The `amount` is the limit on what the patient pays. The decimal precision reflects what the payer sent (for example, `5000.0` or `5000`). Check `timePeriod` to determine whether an amount is the full maximum or the amount remaining. - **`plans[].benefits.outOfPocket[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.outOfPocket[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.outOfPocket[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.outOfPocket[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.outOfPocket[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.outOfPocket[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.outOfPocket[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.outOfPocket[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.outOfPocket[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.outOfPocket[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.outOfPocket[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.outOfPocket[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.outOfPocket[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.outOfPocket[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.outOfPocket[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.outOfPocket[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.outOfPocket[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.outOfPocket[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.outOfPocket[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.outOfPocket[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.outOfPocket[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.outOfPocket[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.outOfPocket[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.outOfPocket[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.outOfPocket[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.outOfPocket[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.outOfPocket[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.outOfPocket[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.outOfPocket[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.outOfPocket[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.outOfPocket[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.outOfPocket[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.outOfPocket[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.outOfPocket[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.outOfPocket[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.outOfPocket[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.outOfPocket[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.outOfPocket[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.outOfPocket[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.outOfPocket[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.outOfPocket[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.outOfPocket[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.outOfPocket[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.outOfPocket[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.outOfPocket[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.outOfPocket[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.outOfPocket[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.outOfPocket[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.outOfPocket[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.outOfPocket[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.outOfPocket[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.outOfPocket[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.outOfPocket[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.outOfPocket[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.outOfPocket[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.outOfPocket[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.outOfPocket[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.outOfPocket[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.outOfPocket[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.outOfPocket[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.outOfPocket[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.outOfPocket[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.outOfPocket[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.outOfPocket[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.outOfPocket[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.outOfPocket[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.outOfPocket[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.outOfPocket[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.outOfPocket[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.outOfPocket[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.outOfPocket[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.outOfPocket[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.outOfPocket[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.outOfPocket[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.outOfPocket[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.outOfPocket[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.outOfPocket[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.outOfPocket[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.outOfPocket[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.outOfPocket[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.outOfPocket[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.preExistingCondition`** (`array of EligibilityCheckPreExistingCondition objects`): A list of coverage restrictions due to pre-existing conditions. Indicates coverage for this benefit is restricted because of a pre-existing condition. - **`plans[].benefits.preExistingCondition[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.preExistingCondition[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.preExistingCondition[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.preExistingCondition[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.preExistingCondition[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.preExistingCondition[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.preExistingCondition[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.preExistingCondition[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.preExistingCondition[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.preExistingCondition[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.preExistingCondition[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.preExistingCondition[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.preExistingCondition[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.preExistingCondition[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.preExistingCondition[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.preExistingCondition[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.preExistingCondition[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.preExistingCondition[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.preExistingCondition[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.preExistingCondition[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.preExistingCondition[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.preExistingCondition[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.preExistingCondition[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.preExistingCondition[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.preExistingCondition[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.preExistingCondition[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.preExistingCondition[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.preExistingCondition[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.preExistingCondition[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.preExistingCondition[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.preExistingCondition[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.preExistingCondition[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.preExistingCondition[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.preExistingCondition[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.preExistingCondition[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.preExistingCondition[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.preExistingCondition[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.preExistingCondition[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.preExistingCondition[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.preExistingCondition[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.preExistingCondition[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.preExistingCondition[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.preExistingCondition[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.preExistingCondition[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.preExistingCondition[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.preExistingCondition[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.preExistingCondition[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.preExistingCondition[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.preExistingCondition[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.preExistingCondition[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.preExistingCondition[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.preExistingCondition[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.preExistingCondition[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.preExistingCondition[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.preExistingCondition[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.preExistingCondition[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.preExistingCondition[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.preExistingCondition[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.preExistingCondition[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.preExistingCondition[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.preExistingCondition[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.preExistingCondition[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.preExistingCondition[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.preExistingCondition[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.preExistingCondition[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.preExistingCondition[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.preExistingCondition[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.preExistingCondition[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.preExistingCondition[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.preExistingCondition[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.preExistingCondition[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.preExistingCondition[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.preExistingCondition[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.preExistingCondition[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.preExistingCondition[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.primaryCareProvider`** (`array of EligibilityCheckPrimaryCareProvider objects`): A list of primary care providers for the patient. A PCP is the main healthcare provider responsible for managing a patient's care and coordinating referrals to specialists. When present, the provider's information is available in the `relatedEntities` array. - **`plans[].benefits.primaryCareProvider[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.primaryCareProvider[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.primaryCareProvider[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.primaryCareProvider[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.primaryCareProvider[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.primaryCareProvider[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.primaryCareProvider[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.primaryCareProvider[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.primaryCareProvider[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.primaryCareProvider[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.primaryCareProvider[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.primaryCareProvider[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.primaryCareProvider[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.primaryCareProvider[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.primaryCareProvider[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.primaryCareProvider[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.primaryCareProvider[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.primaryCareProvider[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.primaryCareProvider[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.primaryCareProvider[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.primaryCareProvider[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.primaryCareProvider[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.primaryCareProvider[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.primaryCareProvider[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.primaryCareProvider[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.primaryCareProvider[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.primaryCareProvider[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.primaryCareProvider[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.primaryCareProvider[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.primaryCareProvider[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.primaryCareProvider[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.primaryCareProvider[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.primaryCareProvider[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.primaryCareProvider[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.primaryCareProvider[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.primaryCareProvider[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.primaryCareProvider[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.primaryCareProvider[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.primaryCareProvider[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.primaryCareProvider[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.primaryCareProvider[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.primaryCareProvider[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.primaryCareProvider[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.primaryCareProvider[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.primaryCareProvider[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.primaryCareProvider[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.primaryCareProvider[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.primaryCareProvider[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.primaryCareProvider[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.primaryCareProvider[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.primaryCareProvider[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.primaryCareProvider[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.primaryCareProvider[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.primaryCareProvider[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.primaryCareProvider[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.primaryCareProvider[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.primaryCareProvider[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.primaryCareProvider[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.priorYearsHistory`** (`array of EligibilityCheckPriorYearsHistory objects`): A list of historical benefits information for the patient. - **`plans[].benefits.priorYearsHistory[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.priorYearsHistory[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.priorYearsHistory[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.priorYearsHistory[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.priorYearsHistory[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.priorYearsHistory[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.priorYearsHistory[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.priorYearsHistory[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.priorYearsHistory[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.priorYearsHistory[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.priorYearsHistory[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.priorYearsHistory[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.priorYearsHistory[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.priorYearsHistory[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.priorYearsHistory[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.priorYearsHistory[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.priorYearsHistory[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.priorYearsHistory[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.priorYearsHistory[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.priorYearsHistory[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.priorYearsHistory[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.priorYearsHistory[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.priorYearsHistory[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.priorYearsHistory[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.priorYearsHistory[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.priorYearsHistory[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.priorYearsHistory[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.priorYearsHistory[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.priorYearsHistory[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.priorYearsHistory[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.priorYearsHistory[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.priorYearsHistory[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.priorYearsHistory[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.priorYearsHistory[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.priorYearsHistory[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.priorYearsHistory[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.priorYearsHistory[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.priorYearsHistory[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.priorYearsHistory[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.priorYearsHistory[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.priorYearsHistory[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.priorYearsHistory[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.priorYearsHistory[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.priorYearsHistory[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.priorYearsHistory[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.priorYearsHistory[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.priorYearsHistory[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.priorYearsHistory[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.priorYearsHistory[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.priorYearsHistory[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.priorYearsHistory[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.priorYearsHistory[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.priorYearsHistory[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.priorYearsHistory[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.priorYearsHistory[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.priorYearsHistory[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.priorYearsHistory[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.priorYearsHistory[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.reserve`** (`array of EligibilityCheckReserve objects`): A list of reserve benefits for the patient. This type is primarily used by Medicare (HETS) to indicate lifetime reserve benefit amounts separate from annual limits. For example, Medicare Lifetime Reserve days – the limited pool of additional inpatient hospital days a patient can use after exhausting a benefit period. - **`plans[].benefits.reserve[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.reserve[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.reserve[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.reserve[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.reserve[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.reserve[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.reserve[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.reserve[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.reserve[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.reserve[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.reserve[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.reserve[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.reserve[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.reserve[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.reserve[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.reserve[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.reserve[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.reserve[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.reserve[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.reserve[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.reserve[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.reserve[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.reserve[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.reserve[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.reserve[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.reserve[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.reserve[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.reserve[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.reserve[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.reserve[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.reserve[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.reserve[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.reserve[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.reserve[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.reserve[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.reserve[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.reserve[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.reserve[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.reserve[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.reserve[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.reserve[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.reserve[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.reserve[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.reserve[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.reserve[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.reserve[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.reserve[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.reserve[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.reserve[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.reserve[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.reserve[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.reserve[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.reserve[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.reserve[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.reserve[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.reserve[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.reserve[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.reserve[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.reserve[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.reserve[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.reserve[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.reserve[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.reserve[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.reserve[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.reserve[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.reserve[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.reserve[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.reserve[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.reserve[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.reserve[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.reserve[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.reserve[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.reserve[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.reserve[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.reserve[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.reserve[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.reserve[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.reserve[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.reserve[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.reserve[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.reserve[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.reserve[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.reserve[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.secondSurgicalOpinionRequired`** (`array of EligibilityCheckSecondSurgicalOpinionRequired objects`): A list of benefits requiring a second surgical opinion for coverage. Indicates the plan requires a second surgical opinion before this benefit is available. This is a precondition for obtaining the benefit. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.secondSurgicalOpinionRequired[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.secondSurgicalOpinionRequired[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.secondSurgicalOpinionRequired[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.secondSurgicalOpinionRequired[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.secondSurgicalOpinionRequired[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.secondSurgicalOpinionRequired[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.secondSurgicalOpinionRequired[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.secondSurgicalOpinionRequired[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.secondSurgicalOpinionRequired[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.secondSurgicalOpinionRequired[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.secondSurgicalOpinionRequired[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.secondSurgicalOpinionRequired[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.secondSurgicalOpinionRequired[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.secondSurgicalOpinionRequired[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.secondSurgicalOpinionRequired[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.secondSurgicalOpinionRequired[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.secondSurgicalOpinionRequired[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.secondSurgicalOpinionRequired[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.secondSurgicalOpinionRequired[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.secondSurgicalOpinionRequired[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.secondSurgicalOpinionRequired[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.servicesRestrictedToFollowingProvider`** (`array of EligibilityCheckServicesRestrictedToFollowingProvider objects`): A list of services restricted to specific providers. Indicates the benefit is available only when delivered by a particular provider, identified in `relatedEntities`. This doesn't confirm whether that provider is in or out of network with the payer. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.servicesRestrictedToFollowingProvider[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.servicesRestrictedToFollowingProvider[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.spendDown`** (`array of EligibilityCheckSpendDown objects`): A list of spend down benefit entries from the payer. Spend down is a process that allows individuals with high medical expenses to qualify for Medicaid even if their income is above the Medicaid income limit. The `amount` represents the total the patient pays out-of-pocket before they can receive Medicaid benefits. The decimal precision reflects what the payer sent (for example, `1500.0` or `1500`). - **`plans[].benefits.spendDown[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.spendDown[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.spendDown[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.spendDown[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.spendDown[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.spendDown[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.spendDown[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.spendDown[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.spendDown[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.spendDown[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.spendDown[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.spendDown[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.spendDown[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.spendDown[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.spendDown[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.spendDown[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.spendDown[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.spendDown[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.spendDown[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.spendDown[].amount`** (`string`) (required): The monetary amount for this benefit. - **`plans[].benefits.spendDown[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.spendDown[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.spendDown[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.spendDown[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.spendDown[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.spendDown[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.spendDown[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.spendDown[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.spendDown[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.spendDown[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.spendDown[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.spendDown[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.spendDown[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.spendDown[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.spendDown[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.spendDown[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.spendDown[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.spendDown[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.spendDown[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.spendDown[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.spendDown[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.spendDown[].quantity`** (`object`): A quantity value with a qualifier describing the unit of measure. For example, a value of `10` with a qualifier of `VISITS` means 10 visits. - **`plans[].benefits.spendDown[].quantity.qualifier`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `MINIMUM`, `QUANTITY_USED`, `COVERED_ACTUAL`, `COVERED_ESTIMATED`, `NUMBER_OF_CO_INSURANCE_DAYS`, `DEDUCTIBLE_BLOOD_UNITS`, `DAYS`, `HOURS`, `LIFE_TIME_RESERVE_ACTUAL`, `LIFE_TIME_RESERVE_ESTIMATED`, `MAXIMUM`, `MONTH`, `NUMBER_OF_SERVICES_OR_PROCEDURES`, `QUANTITY_APPROVED`, `VISITS`, `YEARS` - **`plans[].benefits.spendDown[].quantity.value`** (`string`): The numeric quantity. For example, `10` when the `qualifier` is `VISITS`. - **`plans[].benefits.spendDown[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.spendDown[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.spendDown[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.spendDown[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.spendDown[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.spendDown[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.spendDown[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.spendDown[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.spendDown[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.spendDown[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.spendDown[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.spendDown[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.spendDown[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.spendDown[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.spendDown[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.spendDown[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.spendDown[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.spendDown[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.spendDown[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.spendDown[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.spendDown[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.spendDown[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.spendDown[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.spendDown[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.spendDown[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.spendDown[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.spendDown[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.spendDown[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.spendDown[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.spendDown[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.spendDown[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.spendDown[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.spendDown[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.spendDown[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.spendDown[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.spendDown[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.spendDown[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.spendDown[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.spendDown[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.spendDown[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.spendDown[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.spendDown[].timePeriod`** (`string`): Code specifying the time period for the benefit information. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#time-qualifier-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `HOUR`, `DAY`, `24_HOURS`, `YEARS`, `SERVICE_YEAR`, `CALENDAR_YEAR`, `YEAR_TO_DATE`, `CONTRACT`, `EPISODE`, `VISIT`, `OUTLIER`, `REMAINING`, `EXCEEDED`, `NOT_EXCEEDED`, `LIFETIME`, `LIFETIME_REMAINING`, `MONTH`, `WEEK`, `ADMISSION` - **`plans[].benefits.statuses`** (`array of EligibilityCheckEligibilityStatus objects`): Eligibility status benefit entries from the payer. Each entry indicates whether the patient has active or inactive coverage for a specific service, network, and coverage level. - **`plans[].benefits.statuses[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.statuses[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.statuses[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.statuses[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.statuses[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.statuses[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.statuses[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.statuses[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.statuses[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.statuses[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.statuses[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.statuses[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.statuses[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.statuses[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.statuses[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.statuses[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.statuses[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.statuses[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.statuses[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.statuses[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.statuses[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.statuses[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.statuses[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.statuses[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.statuses[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.statuses[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.statuses[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.statuses[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.statuses[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.statuses[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.statuses[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.statuses[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.statuses[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.statuses[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.statuses[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.statuses[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.statuses[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.statuses[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.statuses[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.statuses[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.statuses[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.statuses[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.statuses[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.statuses[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.statuses[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.statuses[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.statuses[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.statuses[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.statuses[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.statuses[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.statuses[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.statuses[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.statuses[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.statuses[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.statuses[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.statuses[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.statuses[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.statuses[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.statuses[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.statuses[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.statuses[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.statuses[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.statuses[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.statuses[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.statuses[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.statuses[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.statuses[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.statuses[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.statuses[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.statuses[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.statuses[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.statuses[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.statuses[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.statuses[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.statuses[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.statuses[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.statuses[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.statuses[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.statuses[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.statuses[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.statuses[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].benefits.statuses[].status`** (`string`) (required): The patient's coverage status, indicating whether their coverage is active or inactive for specific services. - Allowed values: `ACTIVE_COVERAGE`, `ACTIVE_FULL_RISK_CAPITATION`, `ACTIVE_SERVICES_CAPITATED`, `ACTIVE_SERVICES_CAPITATED_TO_PRIMARY_CARE_PROVIDER`, `ACTIVE_PENDING_INVESTIGATION`, `INACTIVE`, `INACTIVE_PENDING_ELIGIBILITY_UPDATE`, `INACTIVE_PENDING_INVESTIGATION` - **`plans[].benefits.unlimited`** (`array of EligibilityCheckUnlimited objects`): A list of unlimited benefits for the patient's plan. For example, unlimited physical therapy visits or unlimited preventive care. - **`plans[].benefits.unlimited[].additionalInformation`** (`object`): Additional plan, group, and policy identification numbers for this benefit entry. - **`plans[].benefits.unlimited[].additionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier lets the payer point to a list of drugs and their alternatives, along with the formulary status that applies to the patient. - **`plans[].benefits.unlimited[].additionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier lets the payer point to a list of drugs that have coverage limitations for the patient. - **`plans[].benefits.unlimited[].additionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`plans[].benefits.unlimited[].additionalInformation.familyUnitNumber`** (`string`): The family unit number. Pharmacy benefits managers (PBMs) return this when the patient has a suffix to their member ID. For all other payers, the suffix is considered part of the member ID. - **`plans[].benefits.unlimited[].additionalInformation.group`** (`object`): Additional information with description. - **`plans[].benefits.unlimited[].additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.unlimited[].additionalInformation.group.number`** (`string`) (required): The identification number. - **`plans[].benefits.unlimited[].additionalInformation.groupOrPolicyNumber`** (`string`): A group or policy number from the payer. Present when Stedi can't determine the type. Contact the payer for confirmation. - **`plans[].benefits.unlimited[].additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`plans[].benefits.unlimited[].additionalInformation.mbi`** (`string`): The Medicare Beneficiary Identifier (MBI), the randomized identifier CMS uses to identify Medicare beneficiaries. If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`plans[].benefits.unlimited[].additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`plans[].benefits.unlimited[].additionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`plans[].benefits.unlimited[].additionalInformation.memberId`** (`string`): The patient's member ID. - **`plans[].benefits.unlimited[].additionalInformation.plan`** (`object`): Additional information with description. - **`plans[].benefits.unlimited[].additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`plans[].benefits.unlimited[].additionalInformation.plan.number`** (`string`) (required): The identification number. - **`plans[].benefits.unlimited[].additionalInformation.priorAuthNumber`** (`string`): The prior authorization number. - **`plans[].benefits.unlimited[].additionalInformation.referralNumber`** (`string`): The referral number. - **`plans[].benefits.unlimited[].amount`** (`string`): The monetary amount associated with this benefit. - **`plans[].benefits.unlimited[].coverageLevel`** (`string`) (required): Code indicating the level of coverage for the patient. Payers may sometimes return other non-compliant values. - Allowed values: `CHILDREN_ONLY`, `DEPENDENTS_ONLY`, `EMPLOYEE_AND_CHILDREN`, `EMPLOYEE_ONLY`, `EMPLOYEE_AND_SPOUSE`, `FAMILY`, `INDIVIDUAL`, `SPOUSE_AND_CHILDREN`, `SPOUSE_ONLY` - **`plans[].benefits.unlimited[].dates`** (`object`): Contains the dates associated with specific benefits, as ISO 8601 date ranges. These dates determine eligibility for individual benefits, separate from overall plan eligibility dates. - **`plans[].benefits.unlimited[].dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.added.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.admission.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.benefit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.benefit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.benefit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.completion`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.completion.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.completion.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.coordinationOfBenefits`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.coordinationOfBenefits.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.coordinationOfBenefits.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.discharge.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.eligibility.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.latestVisit`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.latestVisit.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.latestVisit.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.period`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.period.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.period.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.plan.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.primaryCareProvider`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.primaryCareProvider.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.primaryCareProvider.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.service.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`plans[].benefits.unlimited[].dates.status.end`** (`string`): The inclusive end of the range. - **`plans[].benefits.unlimited[].dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`plans[].benefits.unlimited[].diagnosis`** (`object`): A diagnosis associated with this benefit entry. Includes a code system and one or more diagnosis codes. - **`plans[].benefits.unlimited[].diagnosis.codeSystem`** (`string`) (required): The code system for diagnosis codes. Only supports ICD-10-CM. - Allowed values: `ICD-10-CM` - **`plans[].benefits.unlimited[].diagnosis.codes`** (`array of EligibilityCheckDiagnosisCode objects`) (required): Diagnosis codes associated with this benefit entry. - **`plans[].benefits.unlimited[].diagnosis.codes[].definition`** (`string`): The human-readable definition of the diagnosis code. - **`plans[].benefits.unlimited[].diagnosis.codes[].value`** (`string`) (required): The diagnosis code value. - **`plans[].benefits.unlimited[].insuranceType`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `DISABILITY`, `MEDICARE_POINT_OF_SERVICE_POS`, `MULTIPLE_OPTIONS_HEALTH_PLAN`, `MEDICARE_SECONDARY_WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EMPLOYER_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_ENDSTAGE_RENAL_DISEASE_BENEFICIARY_IN_THE_MANDATED_COORDINATION_PERIOD_WITH_AN_EMPLOYERS_GROUP_HEALTH_PLAN`, `MEDICARE_SECONDARY_NOFAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `MEDICARE_SECONDARY_WORKERS_COMPENSATION`, `MEDICARE_SECONDARY_PUBLIC_HEALTH_SERVICE_PHS_OR_OTHER_FEDERAL_AGENCY`, `MEDICARE_SECONDARY_BLACK_LUNG`, `MEDICARE_SECONDARY_VETERANS_ADMINISTRATION`, `MEDICARE_SECONDARY_DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LARGE_GROUP_HEALTH_PLAN_LGHP`, `MEDICARE_SECONDARY_OTHER_LIABILITY_INSURANCE_IS_PRIMARY`, `AUTO_INSURANCE_POLICY`, `COMMERCIAL`, `CONSOLIDATED_OMNIBUS_BUDGET_RECONCILIATION_ACT_COBRA`, `MEDICARE_CONDITIONALLY_PRIMARY`, `DISABILITY_BENEFITS`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `FAMILY_OR_FRIENDS`, `GROUP_POLICY`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO`, `HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK`, `SPECIAL_LOW_INCOME_MEDICARE_BENEFICIARY`, `INDEMNITY`, `INDIVIDUAL_POLICY`, `LONG_TERM_CARE`, `LONG_TERM_POLICY`, `LIFE_INSURANCE`, `LITIGATION`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `MEDIGAP_PART_A`, `MEDIGAP_PART_B`, `MEDICARE_PRIMARY`, `OTHER`, `PROPERTY_INSURANCE_PERSONAL`, `PERSONAL`, `PERSONAL_PAYMENT_CASH_NO_INSURANCE`, `PREFERRED_PROVIDER_ORGANIZATION_PPO`, `POINT_OF_SERVICE_POS`, `QUALIFIED_MEDICARE_BENEFICIARY`, `PROPERTY_INSURANCE_REAL`, `SUPPLEMENTAL_POLICY`, `TAX_EQUITY_FISCAL_RESPONSIBILITY_ACT_TEFRA`, `WORKERS_COMPENSATION`, `WRAP_UP_POLICY` - **`plans[].benefits.unlimited[].messages`** (`array of strings`): Free-form messages from the payer providing additional information about this benefit entry, like prior authorization requirements, network restrictions, benefit limits, or plan details. Message content isn't standardized and varies by payer. - **`plans[].benefits.unlimited[].network`** (`object`): Network information for a benefit, including the in-plan network indicator and plan network identification. - **`plans[].benefits.unlimited[].network.description`** (`string`): The plan, group, or plan network name. - **`plans[].benefits.unlimited[].network.id`** (`string`): The plan network identification number. - **`plans[].benefits.unlimited[].network.indicator`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `IN_NETWORK`, `OUT_OF_NETWORK`, `IN_AND_OUT_OF_NETWORK` - **`plans[].benefits.unlimited[].percent`** (`string`): The percentage associated with this benefit. - **`plans[].benefits.unlimited[].placesOfService`** (`array of EligibilityCheckPlaceOfService objects`): The locations where providers may deliver healthcare services for this benefit. Common examples include physician offices, hospitals, and patient homes. When present, this indicates facility-specific coverage details. - **`plans[].benefits.unlimited[].placesOfService[].code`** (`string`): Standardized code identifying the type of healthcare facility where providers may deliver services. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`plans[].benefits.unlimited[].placesOfService[].name`** (`string`): The human-readable name of the place of service. - **`plans[].benefits.unlimited[].planCoverageDescription`** (`string`): The plan coverage description the payer sent for this benefit entry. Payers typically send the plan name, but some send benefit-level information instead. Stedi omits this property when it matches the plan's `name`. When the plan has no `name`, check this property for the payer's plan information. - **`plans[].benefits.unlimited[].priorAuthIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `REQUIRED`, `NOT_REQUIRED` - **`plans[].benefits.unlimited[].relatedEntities`** (`array of EligibilityCheckRelatedEntity objects`): Another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. - **`plans[].benefits.unlimited[].relatedEntities[].address`** (`object`): The address of the entity. - **`plans[].benefits.unlimited[].relatedEntities[].address.addressLine1`** (`string`): The first line of the address. - **`plans[].benefits.unlimited[].relatedEntities[].address.addressLine2`** (`string`): The second line of the address. - **`plans[].benefits.unlimited[].relatedEntities[].address.city`** (`string`): The city. - **`plans[].benefits.unlimited[].relatedEntities[].address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`plans[].benefits.unlimited[].relatedEntities[].address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`plans[].benefits.unlimited[].relatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`plans[].benefits.unlimited[].relatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`plans[].benefits.unlimited[].relatedEntities[].contacts`** (`array of EligibilityCheckContact objects`): The entity's contact information. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].ediNumbers`** (`array of strings`): The contact's EDI numbers. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].emails`** (`array of strings`): The contact's email addresses. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].faxNumbers`** (`array of strings`): The contact's fax numbers. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].name`** (`string`): The name of the contact person. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].phoneNumbers`** (`array of strings`): The contact's phone numbers. - **`plans[].benefits.unlimited[].relatedEntities[].contacts[].urls`** (`array of strings`): The contact's URLs. - **`plans[].benefits.unlimited[].relatedEntities[].ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`plans[].benefits.unlimited[].relatedEntities[].etin`** (`string`): Electronic Transmitter Identification Number. - **`plans[].benefits.unlimited[].relatedEntities[].facilityId`** (`string`): Facility Identification. - **`plans[].benefits.unlimited[].relatedEntities[].memberId`** (`string`): Member Identification Number - **`plans[].benefits.unlimited[].relatedEntities[].naicId`** (`string`): National Association of Insurance Commissioners Identification - **`plans[].benefits.unlimited[].relatedEntities[].name`** (`any`): A name that is either a person or an organization. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.firstName`** (`string`): The person's first name. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.lastName`** (`string`): The person's last name. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`plans[].benefits.unlimited[].relatedEntities[].name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`plans[].benefits.unlimited[].relatedEntities[].npi`** (`string`): Centers for Medicare and Medicaid Services National Provider Identifier - **`plans[].benefits.unlimited[].relatedEntities[].payerId`** (`string`): Payer Identification - **`plans[].benefits.unlimited[].relatedEntities[].pharmacyProcessorNumber`** (`string`): Pharmacy Processor Number - **`plans[].benefits.unlimited[].relatedEntities[].provider`** (`object`): Information about a provider associated with the related entity. - **`plans[].benefits.unlimited[].relatedEntities[].provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`plans[].benefits.unlimited[].relatedEntities[].provider.reference`** (`string`): The provider's taxonomy code. - **`plans[].benefits.unlimited[].relatedEntities[].relationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `PARENT`, `CHILD`, `DOMESTIC_PARTNER`, `SPOUSE`, `EMPLOYEE`, `OTHER`, `UNKNOWN_RELATIONSHIP` - **`plans[].benefits.unlimited[].relatedEntities[].serviceProviderNumber`** (`string`): Service Provider Number - **`plans[].benefits.unlimited[].relatedEntities[].ssn`** (`string`): Social Security Number. - **`plans[].benefits.unlimited[].relatedEntities[].tin`** (`string`): The Federal Taxpayer Identification Number. - **`plans[].benefits.unlimited[].relatedEntities[].type`** (`string`) (required): The entity identifier code for the benefit related entity. Payers may sometimes return other non-compliant values. - Allowed values: `CONTRACTED_SERVICE_PROVIDER`, `PREFERRED_PROVIDER_ORGANIZATION`, `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `OTHER_PHYSICIAN`, `FACILITY`, `GATEWAY_PROVIDER`, `GROUP`, `INDEPENDENT_PHYSICIANS_ASSOCIATION`, `INSURED_OR_SUBSCRIBER`, `LEGAL_REPRESENTATIVE`, `ORIGIN_CARRIER`, `PRIMARY_CARE_PROVIDER`, `PRIOR_INSURANCE_CARRIER`, `PLAN_SPONSOR`, `PAYER`, `PRIMARY_PAYER`, `SECONDARY_PAYER`, `TERTIARY_PAYER`, `PARTY_PERFORMING_VERIFICATION`, `VENDOR`, `ORGANIZATION_COMPLETING_CONFIGURATION_CHANGE`, `UTILIZATION_MANAGEMENT_ORGANIZATION`, `MANAGED_CARE_ORGANIZATION` - **`plans[].benefits.unlimited[].service`** (`object`): The service or procedure that this benefit applies to, using a code or code range within a code system like CPT, HCPCS, or NDC. - **`plans[].benefits.unlimited[].service.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.unlimited[].service.range`** (`object`): A range of service or procedure codes, defined by start and end codes. For example, CPT codes 99201 through 99215. - **`plans[].benefits.unlimited[].service.range.end`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.unlimited[].service.range.end.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.unlimited[].service.range.end.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.unlimited[].service.range.start`** (`object`) (required): A single service or procedure code with its definition. - **`plans[].benefits.unlimited[].service.range.start.definition`** (`string`): The human-readable definition of the code. - **`plans[].benefits.unlimited[].service.range.start.value`** (`string`) (required): The service or procedure code value. - **`plans[].benefits.unlimited[].service.system`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Payers may sometimes return other non-compliant values. - Allowed values: `STC`, `CDT`, `CPT`, `NDC`, `HCPCS`, `ICD-10-PCS` - **`plans[].benefits.unlimited[].service.value`** (`string`): The service or procedure code value. - **`plans[].benefits.unlimited[].serviceLimits`** (`array of EligibilityCheckServiceLimit objects`): Service delivery limits for this benefit, like visit frequency restrictions, age boundaries, or delivery schedules. - **`plans[].name`** (`string`): The name of the plan. Stedi derives this from the plan names the payer sends in the benefit entries. This property is present when the payer sends consistent plan names, and absent when the data is missing, ambiguous, or contradictory. When absent, check each benefit's `planCoverageDescription` for the plan information. - **`provider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. - **`provider.additionalInformation`** (`object`): Additional identifying information about the provider. - **`provider.additionalInformation.contractNumber`** (`string`): The provider's contract number. - **`provider.additionalInformation.electronicDevicePin`** (`string`): The provider's electronic device PIN. - **`provider.additionalInformation.facilityIdNumber`** (`string`): The ID number for the provider's facility. - **`provider.additionalInformation.facilityNetworkId`** (`string`): The provider's facility network identification number. - **`provider.additionalInformation.medicaidProviderNumber`** (`string`): The provider's Medicaid provider number. - **`provider.additionalInformation.medicareProviderNumber`** (`string`): The provider's Medicare provider number. - **`provider.additionalInformation.personalIdentificationNumber`** (`string`): The provider's personal identification number. - **`provider.additionalInformation.planNetworkId`** (`string`): The provider's plan network identification number. - **`provider.additionalInformation.priorIdentifierNumber`** (`string`): The provider's prior identifier number. - **`provider.additionalInformation.stateLicense`** (`object`): The provider's state license information. - **`provider.additionalInformation.stateLicense.number`** (`string`) (required): The provider's state license number. - **`provider.additionalInformation.stateLicense.state`** (`string`): The state or province code that issued the license. - **`provider.additionalInformation.submitterId`** (`string`): The provider's submitter ID. - **`provider.additionalInformation.userId`** (`string`): The provider's user ID. - **`provider.address`** (`object`): The address of the entity. - **`provider.address.addressLine1`** (`string`): The first line of the address. - **`provider.address.addressLine2`** (`string`): The second line of the address. - **`provider.address.city`** (`string`): The city. - **`provider.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`provider.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`provider.ein`** (`string`): The Employer Identification Number (EIN), distinct from the Federal Taxpayer Identification Number in `tin`. - **`provider.name`** (`any`): A name that is either a person or an organization. - **`provider.name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`provider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`provider.name (variant 1).person.lastName`** (`string`): The person's last name. - **`provider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`provider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`provider.name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`provider.provider`** (`object`): Information about a provider associated with the related entity. - **`provider.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`provider.provider.reference`** (`string`): The provider's taxonomy code. - **`provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number the payer assigns. - **`provider.ssn`** (`string`): The Social Security Number (SSN). - **`provider.tin`** (`string`): The Federal Taxpayer Identification Number. - **`provider.type`** (`string`) (required): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `PROVIDER`, `THIRD_PARTY_ADMINISTRATOR`, `EMPLOYER`, `HOSPITAL`, `FACILITY`, `GATEWAY_PROVIDER`, `PLAN_SPONSOR`, `PAYER` - **`subscriber`** (`object`): Information about the primary policyholder for the insurance plan listed in the original eligibility check request. The response will always include either the subscriber's name or member ID for identification, but most payers will also return the subscriber's date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the subscriber's full legal name. - **`subscriber.additionalInformation`** (`object`): Additional identifying information about the subscriber. - **`subscriber.additionalInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`subscriber.additionalInformation.caseNumber`** (`string`): The case number associated with the subscriber. - **`subscriber.additionalInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`subscriber.additionalInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`subscriber.additionalInformation.familyUnitNumber`** (`string`): The family unit number. - **`subscriber.additionalInformation.group`** (`object`): Additional information with description. - **`subscriber.additionalInformation.group.name`** (`string`): The name or description associated with `number`. - **`subscriber.additionalInformation.group.number`** (`string`) (required): The identification number. - **`subscriber.additionalInformation.groupOrPolicyNumber`** (`string`): The group or policy number. - **`subscriber.additionalInformation.identificationCardSerialNumber`** (`string`): Used when the identification card has a number in addition to the member ID. - **`subscriber.additionalInformation.identityCardNumber`** (`string`): The identity card number. Present when this number differs from the member ID. - **`subscriber.additionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`subscriber.additionalInformation.issueNumber`** (`string`): The issue number. - **`subscriber.additionalInformation.mbi`** (`string`): The patient's Medicare Beneficiary Identifier (MBI). If you receive an MBI, we recommend sending a follow-up eligibility check to CMS (payer ID: CMS) for additional benefits data. Visit [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) for more information about the MBI format. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`subscriber.additionalInformation.medicaidRecipientId`** (`string`): The Medicaid recipient identification number. - **`subscriber.additionalInformation.medicalRecordId`** (`string`): The medical record identification number. - **`subscriber.additionalInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`subscriber.additionalInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`subscriber.additionalInformation.plan`** (`object`): Additional information with description. - **`subscriber.additionalInformation.plan.name`** (`string`): The name or description associated with `number`. - **`subscriber.additionalInformation.plan.number`** (`string`) (required): The identification number. - **`subscriber.additionalInformation.planNetwork`** (`object`): Additional information with description. - **`subscriber.additionalInformation.planNetwork.name`** (`string`): The name or description associated with `number`. - **`subscriber.additionalInformation.planNetwork.number`** (`string`) (required): The identification number. - **`subscriber.additionalInformation.priorIdentifierNumber`** (`string`): The prior identifier number. - **`subscriber.additionalInformation.ssn`** (`string`): The patient's Social Security Number (SSN). - **`subscriber.address`** (`object`): The address of the entity. - **`subscriber.address.addressLine1`** (`string`): The first line of the address. - **`subscriber.address.addressLine2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. - **`subscriber.address.country`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.address.countrySubdivision`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. - **`subscriber.birthSequenceNumber`** (`integer`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`subscriber.dateOfBirth`** (`string`): The patient's date of birth as an ISO 8601 `YYYY-MM-DD` string. For example, `1985-03-15` represents March 15, 1985. - **`subscriber.dates`** (`object`): Contains the dates associated with patient attributes, as ISO 8601 date ranges. These provide temporal context for patient-specific data and eligibility periods. - **`subscriber.dates.added`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.added.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.added.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.admission`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.admission.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.admission.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.certification`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.certification.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.certification.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.cobra`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.cobra.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.cobra.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.dateOfDeath`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.dateOfDeath.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.dateOfDeath.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.dateOfLastUpdate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.dateOfLastUpdate.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.dateOfLastUpdate.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.discharge`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.discharge.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.discharge.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.effectiveDateOfChange`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.effectiveDateOfChange.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.effectiveDateOfChange.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.eligibility`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.eligibility.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.eligibility.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.enrollment`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.enrollment.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.enrollment.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.issue`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.issue.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.issue.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.plan`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.plan.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.plan.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.policy`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.policy.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.policy.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.premiumPaidToDate`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.premiumPaidToDate.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.premiumPaidToDate.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.service`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.service.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.service.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.dates.status`** (`object`): A calendar date range. Both bounds are optional and at least one is always present; `end` is inclusive. A point-in-time date is carried in `start`. - **`subscriber.dates.status.end`** (`string`): The inclusive end of the range. - **`subscriber.dates.status.start`** (`string`): The start of the range, or a single point-in-time date. - **`subscriber.gender`** (`string`): Code indicating the patient's gender. Payers may sometimes return other non-compliant values. - Allowed values: `FEMALE`, `MALE`, `UNKNOWN` - **`subscriber.maintenance`** (`object`): Information indicating whether the payer signaled that the patient's identifying information differs from what you submitted. - **`subscriber.maintenance.indicator`** (`string`): Indicates whether the payer signaled that the patient's identifying information differs from what you submitted. - Allowed values: `NONE`, `PAYER_INDICATED` - **`subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`subscriber.name`** (`any`): A name that is either a person or an organization. - **`subscriber.name (variant 1).person`** (`object`) (required): A person's name. Maps to elements NM103 through NM107. - **`subscriber.name (variant 1).person.firstName`** (`string`): The person's first name. - **`subscriber.name (variant 1).person.lastName`** (`string`): The person's last name. - **`subscriber.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`subscriber.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. - **`subscriber.name (variant 2).organization`** (`string`) (required): An organization's name. Maps to element NM103. - **`subscriber.provider`** (`object`): Information about a provider associated with the related entity. - **`subscriber.provider.code`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `ADMITTING`, `ATTENDING`, `BILLING`, `CONSULTING`, `COVERING`, `HOSPITAL`, `HOME_HEALTH_CARE`, `LABORATORY`, `OTHER_PHYSICIAN`, `PHARMACIST`, `PHARMACY`, `PRIMARY_CARE_PHYSICIAN`, `PERFORMING`, `RURAL_HEALTH_CLINIC`, `REFERRING`, `SUBMITTING`, `SKILLED_NURSING_FACILITY`, `SUPERVISING` - **`subscriber.provider.reference`** (`string`): The provider's taxonomy code. - **`warnings`** (`array of EligibilityCheckWarning objects`): Issues with your eligibility request that could affect the results, or information about the response. For example, warnings can help explain why the request was rejected. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. - **`x12`** (`string`) (required): Typically this property contains the raw X12 EDI [271 Eligibility Benefit Response](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-response-x279a1/01GS66YHZPB37ABF34DBPSR213) from the payer. In some circumstances, this property may contain a [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) instead of a 271. A 999 indicates validation errors in the X12 EDI transaction, such as improper formatting or missing or invalid values. If this property contains a 999, many of the other response properties will be empty, as Stedi populates them with information from the 271. **Example:** ```json { "eligibilitySearchId": "01a06d4a-a0fa-77d2-8b49-caa0546ed293", "errors": [ { "code": "41", "description": "Stedi requires the originating and X-Forwarded-For IP addresses to be in the U.S.", "followupAction": "Resubmission Not Allowed", "location": "ENVELOPE" } ], "id": "ec_01a06d4a-a0fa-77d2-8b49-ca9a74c9888b", "message": "Stedi requires the originating and X-Forwarded-For IP addresses to be in the U.S.", "meta": { "outboundTraceId": "01M1PMN87VXMME0ZV6SHJP3B9W", "traceId": "01M1PMN87VXMME0ZV6SHJP3B9W" }, "payer": { "identification": "CMS", "name": { "organization": "CMS" }, "type": "PAYER" }, "payerId": "CMS", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984", "type": "PROVIDER" }, "subscriber": { "dateOfBirth": "1975-05-05", "memberId": "1EG4TE5MK72", "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *260916*1200*^*00501*000000001*0*P*`~GS*HB*STEDI*117151744*20260916*120000*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01M1PMN87VXMME0ZV6SHJP3B9W*20260916*120000~HL*1**20*1~AAA*N**41*N~NM1*PR*2*CMS*****PI*CMS~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*01M1PMN87VXMME0ZV6SHJP3B9W*3117151744~NM1*IL*1*Doe*Jane****MI*1EG4TE5MK72~DMG*D8*19750505~SE*12*0001~GE*1*1~IEA*1*000000001~" } ``` #### 500 CreateEligibilityCheck500Error 500 response **Schema:** `CreateEligibilityCheck500ErrorResponseContent` #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Create Enrollment Source: https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-create-enrollment This endpoint allows you to submit a [transaction enrollment](/healthcare/transaction-enrollment) request for a specific provider. You must create one enrollment request for each transaction type. For example, you would create three separate requests to enroll a provider for 837P claims (professional), 270 real-time eligibility checks, and 835 ERAs (claim payments). 1. Add the provider's details through either the [Providers page](https://portal.stedi.com/app/healthcare/enrollments) or the [Create Provider](/healthcare/api-reference/post-enrollment-create-provider) endpoint. 2. Call this endpoint to create the enrollment request. Set the `status` property to `DRAFT` for test enrollments. Set the `status` property to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the request. 3. The endpoint returns summary information about the enrollment request. Once the status is set to `STEDI_ACTION_REQUIRED`, Stedi begins processing the enrollment request. You can track its progress through the Stedi portal or the API. ## Contact information [#contact-information] You must submit a contact in `primaryContact`. This is where the payer will send communications about the enrollment, if needed. The contact information you provide doesn't need to match the existing contact information on the provider record. This allows you to specify different contacts for different payers as needed. When adding a contact, follow these best practices: - The provider's name and address should match exactly what the payer has on file. Some payers reject enrollment requests with addresses that don't match their records. - However, you may want to set the phone number or email to your own contact details. Do this when you want the payer to contact you about the enrollment instead of the provider directly. ## API Specification Creates a new transaction enrollment request. Transaction enrollment registers a provider to exchange specific transaction types with a payer. **Endpoint:** `POST /enrollments` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Request Body **Schema:** `CreateEnrollmentRequestContent` **Properties:** - **`aggregationPreference`** (`any`): Preference for how the payer should group 835 Electronic Remittance Advice (ERA) transactions. Only set this property for 835 ERA enrollments. - If you include this property for a non-ERA enrollment, Stedi rejects the enrollment request with an HTTP `400` error. - If the payer doesn't support the requested aggregation type, Stedi rejects the enrollment request with an HTTP `400` error. - If not set, Stedi automatically selects a default based on the payer's supported aggregation types and the available identifiers for the provider. - Stedi will attempt to enroll with this preference, but it's not guaranteed. Each payer has its own restrictions and behaviors. - **`aggregationPreference (variant 1).taxId`** (`string`) (required): The Taxpayer Identification Number (TIN) the payer should use for aggregation. - **`aggregationPreference (variant 2).npi`** (`string`) (required): The National Provider Identifier (NPI) the payer should use for aggregation. - **`payer`** (`object`) (required): The payer you want to enroll with. - **`payer.id`** (`string`): Use `idOrAlias` instead. This property will be removed in the future. - **`payer.idOrAlias`** (`string`): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can use the primary payer ID, the Stedi payer ID, or any listed aliases for the payer. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`primaryContact`** (`object`) (required): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - Either `organizationName` _or_ `firstName` and `lastName` are required. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - If you're submitting enrollment requests on a provider's behalf, you may want to set the phone number and email to your own contact details. Do this when you want the payer to contact you about the enrollment status instead of the provider directly. - These contacts are for convenience only. You can specify different contacts on enrollment requests as needed. - **`primaryContact.city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`primaryContact.country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`primaryContact.email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`primaryContact.firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`primaryContact.lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`primaryContact.organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`primaryContact.phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`primaryContact.state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`primaryContact.streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`primaryContact.streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`primaryContact.zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`provider`** (`object`) (required): The provider you want to enroll with the payer. This must be an existing provider record within Stedi. - **`provider.id`** (`string`) (required): The Stedi-assigned identifier for the provider. The [Create Provider](https://www.stedi.com/docs/api-reference/healthcare/post-enrollment-create-provider) endpoint returns this as the `id` property. - **`providerTransactionAccessNumber`** (`string`): This property is required for payers that require a Provider Transaction Access Number (PTAN). The PTAN is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`reason`** (`string`): This shape is deprecated since 2025-10-07: Only Stedi can set or update this property, and it will be removed in a future release. - **`requestedEffectiveDate`** (`string`): The requested effective date for the enrollment in YYYYMMDD format. This is the date you'd like the enrollment to take effect with the payer. For example, setting this to `20260601` for an 835 Electronic Remittance Advice (ERAs) enrollment means you want to start receiving ERAs through Stedi on that date. Stedi processes enrollments accordingly, but can't guarantee that the enrollment will be effective on this exact date. - You can submit today's date or a future date up to 6 months from today. - If not set for draft enrollments, this property remains empty. - If not set for submitted enrollments, Stedi defaults to the enrollment's submission date. - If you include this property for a payer that doesn't support requested effective dates, Stedi rejects the request with an HTTP `400` error. - **`source`** (`string`): The source of the enrollment. - Allowed values: `API`, `UI`, `IMPORT`, `AUTO_ENROLLMENT`, `AUTOMATED_TASK` - **`status`** (`string`): The enrollment's status when it is first created. You can create enrollments in either `DRAFT` or `STEDI_ACTION_REQUIRED` status. The default status is `DRAFT` if not specified. When you're ready for Stedi to begin processing the enrollment, set the status to `STEDI_ACTION_REQUIRED`. Once an enrollment is set to `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `STEDI_ACTION_REQUIRED` - **`transactions`** (`any`) (required): Specifies which transaction types are included in the enrollment. - **`transactions (variant 1).eligibilityCheck`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 1).eligibilityCheck.enroll`** (`boolean`) (required) - **`transactions (variant 2).claimStatus`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 2).claimStatus.enroll`** (`boolean`) (required) - **`transactions (variant 3).professionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 3).professionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 4).institutionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 4).institutionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 5).dentalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 5).dentalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 6).claimPayment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 6).claimPayment.enroll`** (`boolean`) (required) - **`transactions (variant 7).solicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 7).solicitedClaimAttachment.enroll`** (`boolean`) (required) - **`transactions (variant 8).unsolicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 8).unsolicitedClaimAttachment.enroll`** (`boolean`) (required) - **`userEmail`** (`string`) (required): The email address where Stedi should send updates about the enrollment. We'll use it to notify you when there are next steps and send updates on the enrollment's status. - This email address can be different from the `primaryContact.email` where the payer sends communications about the enrollment. - For [automatic enrollment requests](https://www.stedi.com/docs/healthcare/create-manage-transaction-enrollments#automatic-enrollment-requests), Stedi sets this to the oldest account member with the Admin role. **Example:** ```json { "aggregationPreference": { "taxId": "123456789" }, "payer": { "idOrAlias": "87726" }, "primaryContact": { "city": "A City", "email": "test@example.com", "firstName": "John", "lastName": "Doe", "phone": "5551234567", "state": "MD", "streetAddress1": "123 Some Str.", "zipCode": "20814" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998" }, "requestedEffectiveDate": "20240301", "status": "STEDI_ACTION_REQUIRED", "transactions": { "claimPayment": { "enroll": true } }, "userEmail": "test@example.com" } ``` ### Responses #### 200 CreateEnrollment 200 response **Schema:** `CreateEnrollmentResponseContent` **Properties:** - **`aggregationPreference`** (`any`): Preference for how the payer should group 835 Electronic Remittance Advice (ERA) transactions. Only set this property for 835 ERA enrollments. - If you include this property for a non-ERA enrollment, Stedi rejects the enrollment request with an HTTP `400` error. - If the payer doesn't support the requested aggregation type, Stedi rejects the enrollment request with an HTTP `400` error. - If not set, Stedi automatically selects a default based on the payer's supported aggregation types and the available identifiers for the provider. - Stedi will attempt to enroll with this preference, but it's not guaranteed. Each payer has its own restrictions and behaviors. - **`aggregationPreference (variant 1).taxId`** (`string`) (required): The Taxpayer Identification Number (TIN) the payer should use for aggregation. - **`aggregationPreference (variant 2).npi`** (`string`) (required): The National Provider Identifier (NPI) the payer should use for aggregation. - **`createdAt`** (`string`) (required): The date and time when the enrollment was created within Stedi. - **`documents`** (`array of EnrollmentDocument objects`): Documents associated with this enrollment, excluding deleted documents. - **`documents[].contentType`** (`string`): The content type of the document. - **`documents[].createdAt`** (`string`) (required): The date and time when the document was created. - **`documents[].enrollmentId`** (`string`) (required): The enrollment ID this document is associated with. - **`documents[].id`** (`string`) (required): The unique identifier for the document. - **`documents[].name`** (`string`) (required): The name of the document. - **`documents[].size`** (`number`): The size of the document in bytes. - **`documents[].status`** (`string`) (required): Indicates whether the document file has been successfully uploaded to Stedi. - Allowed values: `PENDING`, `UPLOADED`, `FAILED`, `DELETED` - **`documents[].taskId`** (`string`): The task ID associated with this document, if it was created or processed as part of a task. - **`documents[].updatedAt`** (`string`) (required): The date and time when the document was last updated. - **`history`** (`array of EnrollmentHistoryEntry objects`): The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. - **`history[].changedAt`** (`string`) (required): The date and time when this change occurred. - **`history[].changedBy`** (`string`) (required): The source or system that triggered this change. - **`history[].newStatus`** (`string`) (required): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`history[].previousStatus`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`history[].type`** (`string`) (required): The type of change recorded in the enrollment history. - Allowed values: `STATUS_CHANGE` - **`id`** (`string`) (required): The Stedi-assigned identifier for the enrollment request. - **`lastEraReceivedAt`** (`string`): The timestamp of the most recent 835 ERA (Electronic Remittance Advice) Stedi received for this enrollment, based on the enrollment's payer ID, provider NPI, and provider tax ID. Stedi automatically updates this property for each new ERA. - This property is only returned for ERA enrollments in `LIVE` status with at least one matching ERA from the payer. - If this timestamp doesn't match your expected timeline for ERA processing, there may be an upstream issue. Contact Stedi support for assistance. - **`payer`** (`object`) (required): Output structure containing payer information in enrollment responses. - **`payer.name`** (`string`): The payer's name, such as `Cigna` or `UnitedHealthcare`. - **`payer.stediPayerId`** (`string`) (required): The unique Stedi assigned identifier for the payer. - **`payer.submittedPayerIdOrAlias`** (`string`): The payer ID or alias used when creating the enrollment request. For example, `62308` and `CIGNA` are both supported for Cigna. You can find a list of all supported payer IDs and aliases in the [Payer Network](https://www.stedi.com/healthcare/network). - **`primaryContact`** (`object`) (required): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - Either `organizationName` _or_ `firstName` and `lastName` are required. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - If you're submitting enrollment requests on a provider's behalf, you may want to set the phone number and email to your own contact details. Do this when you want the payer to contact you about the enrollment status instead of the provider directly. - These contacts are for convenience only. You can specify different contacts on enrollment requests as needed. - **`primaryContact.city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`primaryContact.country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`primaryContact.email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`primaryContact.firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`primaryContact.lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`primaryContact.organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`primaryContact.phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`primaryContact.state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`primaryContact.streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`primaryContact.streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`primaryContact.zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`provider`** (`object`) (required): Complete provider information including both read-only and mutable fields. - **`provider.id`** (`string`) (required): The Stedi-assigned identifier for the provider. The [Create Provider](https://www.stedi.com/docs/api-reference/healthcare/post-enrollment-create-provider) endpoint returns this as the `id` property. - **`provider.name`** (`string`) (required): The provider's name, such as `Example Dental Associates, LLC`. - **`provider.npi`** (`string`) (required): The provider's National Provider Identifier (NPI). This is a 10-digit number assigned by the Centers for Medicare & Medicaid Services (CMS) to healthcare providers in the United States. It is used to identify providers in healthcare transactions. - **`provider.taxId`** (`string`) (required): The provider's tax identification number (SSN or EIN). This is used to identify the provider for tax and administrative purposes. - **`provider.taxIdType`** (`string`) (required): The type of tax identification number. This indicates whether the tax ID is a Social Security Number (SSN) or Employer Identification Number (EIN). - **`providerTransactionAccessNumber`** (`string`): This property is required for payers that require a Provider Transaction Access Number (PTAN). The PTAN is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`reason`** (`string`): Reasons why the enrollment request is still in `PROVISIONING` status, may take additional time to process, or was rejected by the payer. Only Stedi can set or update this property. - **`requestedEffectiveDate`** (`string`): The requested effective date for the enrollment in YYYYMMDD format. This is the date the submitter would like the enrollment to take effect with the payer. If not provided during submission, Stedi defaults to the enrollment's submission date. Not all payers support requested effective dates. Stedi can't guarantee that the enrollment will be effective with the payer on this exact date. - **`source`** (`string`): The source of the enrollment. - Allowed values: `API`, `UI`, `IMPORT`, `AUTO_ENROLLMENT`, `AUTOMATED_TASK` - **`status`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`statusLastUpdatedAt`** (`string`) (required): The date and time when the enrollment status was last updated. This timestamp is used to track enrollment processing durations and enables filtering to identify recently changed enrollments. It automatically updates whenever an enrollment's status changes but remains unchanged during other updates. - **`submittedAt`** (`string`): The date and time when the enrollment was submitted. If the enrollment is in `DRAFT` status, `submittedAt` is not present. When the enrollment transitions from draft to `STEDI_ACTION_REQUIRED`, `submittedAt` is updated to the submission time. If the enrollment was created and submitted immediately, the `submittedAt` time will be equal or close to the `createdAt` time. - **`tasks`** (`array of Task objects`): Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition. Text values for the `BANK_ACCOUNT_NUMBER` and `BANK_ROUTING_NUMBER` task fields show at most their last four characters. Every other character is replaced with `*`. - **`tasks[].completedAt`** (`string`): The timestamp when the task was completed. - **`tasks[].definition`** (`any`) (required): A discriminated union of task definitions. Supports multiple task types with future extensibility. - **`tasks[].definition (variant 1).manualTask`** (`object`) (required): A task assigned to a responsible party that requires them to collect and submit a defined set of fields. The task is completed by supplying a `ManualTaskResponse` whose values satisfy the declared `fields`. - **`tasks[].definition (variant 1).manualTask.fields`** (`array of ManualTaskField objects`) (required): Fields required to complete the task. Each entry defines the key, human-readable label, optional description, and type for values in the response. Can be empty for instruction-only tasks. - **`tasks[].definition (variant 1).manualTask.fields[].description`** (`string`): Additional context explaining what to provide in the response. For example, details about what supporting documentation (such as the provider's W-9 form) is required. - **`tasks[].definition (variant 1).manualTask.fields[].fieldType`** (`string`) (required): The accepted field types for a manual task. - Allowed values: `TEXT`, `DOCUMENT` - **`tasks[].definition (variant 1).manualTask.fields[].key`** (`string`) (required): A unique identifier for this field within the task, such as `ENROLLMENT_FORM`. - **`tasks[].definition (variant 1).manualTask.fields[].label`** (`string`) (required): Human-readable label for this field, such as `Provider NPI` or `Tax ID`. - **`tasks[].definition (variant 1).manualTask.instructions`** (`string`) (required): Instructions for completing the task. - **`tasks[].definition (variant 1).manualTask.links`** (`array of TaskLink objects`): Links to help complete the task. This can include payer portals, reference documentation, or document download links for Stedi-provided template PDFs. - **`tasks[].definition (variant 1).manualTask.links[].label`** (`string`) (required): Descriptive label for the URL, such as `Provider Portal` or `W-9 Template`. - **`tasks[].definition (variant 1).manualTask.links[].url`** (`string`) (required): The URL for the resource. - **`tasks[].id`** (`string`) (required): The unique, Stedi-assigned identifier for the task. - **`tasks[].isComplete`** (`boolean`) (required): Whether the task has been marked as complete through either the API or the Stedi portal. - **`tasks[].rank`** (`number`) (required): The rank order of this task. Tasks with lower numbers must be completed first. For example, a task with rank `1` must be completed before a task with rank `2`. - **`tasks[].responseData`** (`any`): A discriminated union of task response data. Contains structured data collected when completing specific task types. - **`tasks[].responseData (variant 1).manualTask`** (`object`) (required): Values provided when updating or completing a manual task. Visit [Manage enrollment tasks](https://www.stedi.com/docs/healthcare/transaction-enrollment-tasks-documents#api) for details. - **`tasks[].responseData (variant 1).manualTask.values`** (`array of ManualTaskResponseKeyValue objects`) (required): Values for fields in the task definition. Each value's `key` must have a corresponding field `key`. When updating a task without completing it, you can submit a subset of fields; the supplied values are merged into any previously saved values. Completing a task (`completed: true`) requires a value for every field. - **`tasks[].responseData (variant 1).manualTask.values[].key`** (`string`) (required): Identifier that matches a field `key` in the task definition. - **`tasks[].responseData (variant 1).manualTask.values[].value`** (`any`) (required): The value supplied for a `ManualTaskField`. The variant used must match the field's declared `FieldType`. Supply multiple entries with distinct keys to capture multiple documents or values. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 1).text`** (`string`) (required): Free-form text when the `fieldType` is `TEXT`. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document`** (`object`) (required): A reference to a document uploaded to enrollment, supplied as the `document` variant of a `ManualTaskResponseValue`. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document.documentId`** (`string`) (required): The `documentId` returned for a file uploaded through the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. - **`tasks[].responsibleParty`** (`string`) (required): The party responsible for completing a task. - Allowed values: `PROVIDER`, `STEDI` - **`transactions`** (`any`) (required): Specifies which transaction types are included in the enrollment. - **`transactions (variant 1).eligibilityCheck`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 1).eligibilityCheck.enroll`** (`boolean`) (required) - **`transactions (variant 2).claimStatus`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 2).claimStatus.enroll`** (`boolean`) (required) - **`transactions (variant 3).professionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 3).professionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 4).institutionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 4).institutionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 5).dentalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 5).dentalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 6).claimPayment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 6).claimPayment.enroll`** (`boolean`) (required) - **`transactions (variant 7).solicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 7).solicitedClaimAttachment.enroll`** (`boolean`) (required) - **`transactions (variant 8).unsolicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 8).unsolicitedClaimAttachment.enroll`** (`boolean`) (required) - **`updatedAt`** (`string`) (required): The date and time when the enrollment was updated. - **`userEmail`** (`string`) (required): The email address where Stedi should send updates about the enrollment. We'll use it to notify you when there are next steps and send updates on the enrollment's status. - This email address can be different from the `primaryContact.email` where the payer sends communications about the enrollment. - For [automatic enrollment requests](https://www.stedi.com/docs/healthcare/create-manage-transaction-enrollments#automatic-enrollment-requests), Stedi sets this to the oldest account member with the Admin role. **Example:** ```json { "aggregationPreference": { "taxId": "123456789" }, "createdAt": "2023-11-07T05:31:56Z", "history": [ { "changedAt": "2023-11-07T05:31:56Z", "changedBy": "test@example.com", "newStatus": "DRAFT", "type": "STATUS_CHANGE" }, { "changedAt": "2023-11-07T05:31:56Z", "changedBy": "test@example.com", "newStatus": "STEDI_ACTION_REQUIRED", "previousStatus": "DRAFT", "type": "STATUS_CHANGE" } ], "id": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "payer": { "name": "UnitedHealthcare", "stediPayerId": "KMQTZ", "submittedPayerIdOrAlias": "87726" }, "primaryContact": { "city": "A City", "country": "US", "email": "test@example.com", "firstName": "John", "lastName": "Doe", "phone": "5551234567", "state": "MD", "streetAddress1": "123 Some Str.", "zipCode": "20814" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998", "name": "Test Medical Provider", "npi": "1234567890", "taxId": "123456789", "taxIdType": "EIN" }, "requestedEffectiveDate": "20240301", "source": "API", "status": "STEDI_ACTION_REQUIRED", "statusLastUpdatedAt": "2023-11-07T05:31:56Z", "submittedAt": "2023-11-07T05:31:56Z", "transactions": { "claimPayment": { "enroll": true } }, "updatedAt": "2023-11-07T05:31:56Z", "userEmail": "test@example.com" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Create Provider Source: https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-create-provider This endpoint allows you to create a provider record with the details required for [transaction enrollment](/healthcare/transaction-enrollment). 1. Call this endpoint with the provider's details. 2. The endpoint returns the created provider record, including the provider `id`, which you'll need when creating enrollment requests. You can now add the provider to one or more transaction enrollment requests. You can review and manage all providers you create through this endpoint on the [Providers page](https://portal.stedi.com/app/healthcare/providers). ## Contact information [#contact-information] You can add one or more `contacts` to a provider record. Contacts on the provider record are for convenience - they allow the Stedi portal to prepopulate contact information options when you create enrollment requests manually. However, they **aren't** automatically added to enrollment requests you submit through the portal or API, and you can submit different contact information in enrollment requests for the provider as needed. When adding a contact, follow these best practices: - The provider's name and address should match exactly what payers have on file. Some payers reject enrollment requests with addresses that don't match their records. Remember that you can add different contacts to enrollment requests for specific payers if needed. - However, you may want to set the phone number or email to your own contact details. Do this when you want the payer to contact you about the enrollment instead of the provider directly. ## API Specification Creates a new provider record. Providers must be created before they can be enrolled with payers. **Endpoint:** `POST /providers` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Request Body **Schema:** `CreateProviderRequestContent` **Properties:** - **`contacts`** (`array of ProviderContact objects`): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - Either `organizationName` _or_ `firstName` and `lastName` are required. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - If you're submitting enrollment requests on a provider's behalf, you may want to set the phone number and email to your own contact details. Do this when you want the payer to contact you about the enrollment status instead of the provider directly. - These contacts are for convenience only. You can specify different contacts on enrollment requests as needed. - **`contacts[].city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`contacts[].country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`contacts[].email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`contacts[].firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`contacts[].lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`contacts[].organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`contacts[].phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`contacts[].state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`contacts[].streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`contacts[].streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`contacts[].zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`name`** (`string`) (required): The provider's business name. This is typically the provider's practice name, such as `Dental Associates, LLC`, but it can also be the provider's first and last name. - **`npi`** (`string`) (required): The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search). This is a 10-digit number that is unique to the provider. Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two provider records with the same `npi` as long as they have different values for `taxId`. - **`taxId`** (`string`) (required): The provider's tax ID, as specified by `taxIdType`. This identifier has to be provided without any separators, such as dashes or spaces. For example 111-22-3333 is invalid but `111223333` is valid. Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two provider records with the same `taxId` as long as they have different values for `npi`. - **`taxIdType`** (`string`) (required): The type of tax identification number. Organizations (Type 2 NPIs) must use `EIN`, while individual providers (Type 1 NPIs) can use either `EIN` or `SSN`. - Allowed values: `EIN`, `SSN` **Example:** ```json { "contacts": [ { "city": "Chevy Chase", "email": "bob@fortdental.center", "firstName": "Bob", "lastName": "Dentist", "phone": "5551232135", "state": "MD", "streetAddress1": "123 Some Str", "zipCode": "20814" }, { "city": "Chevy Chase", "email": "tom@fortdental.center", "firstName": "Tom", "lastName": "Dentist", "phone": "5551232133", "state": "MD", "streetAddress1": "123 Some Str", "zipCode": "20814" } ], "name": "BDQ Dental Inc", "npi": "1999999992", "taxId": "555123456", "taxIdType": "EIN" } ``` ### Responses #### 200 CreateProvider 200 response **Schema:** `CreateProviderResponseContent` **Properties:** - **`contacts`** (`array of ProviderContact objects`): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - **`contacts[].city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`contacts[].country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`contacts[].email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`contacts[].firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`contacts[].lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`contacts[].organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`contacts[].phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`contacts[].state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`contacts[].streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`contacts[].streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`contacts[].zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`createdAt`** (`string`): The date and time Stedi created the provider record. - **`id`** (`string`) (required): A unique identifier Stedi assigns to this provider. - **`name`** (`string`) (required): The provider's business name. This is typically the provider's practice name, such as `Dental Associates, LLC`, but it can also be the provider's first and last name. - **`npi`** (`string`) (required): The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search). This is a 10-digit number that is unique to the provider. Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two provider records with the same `npi` as long as they have different values for `taxId`. - **`taxId`** (`string`): The provider's tax ID, as specified by `taxIdType`. This identifier has to be provided without any separators, such as dashes or spaces. For example 111-22-3333 is invalid but `111223333` is valid. Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two provider records with the same `taxId` as long as they have different values for `npi`. - **`taxIdType`** (`string`): The type of tax identification number. Organizations (Type 2 NPIs) must use `EIN`, while individual providers (Type 1 NPIs) can use either `EIN` or `SSN`. - Allowed values: `EIN`, `SSN` - **`updatedAt`** (`string`): The date and time Stedi last updated the provider record. **Example:** ```json { "contacts": [ { "city": "Chevy Chase", "country": "US", "email": "bob@fortdental.center", "firstName": "Bob", "lastName": "Dentist", "organizationName": "", "phone": "5551232135", "state": "MD", "streetAddress1": "123 Some Str", "zipCode": "20814" }, { "city": "Chevy Chase", "country": "US", "email": "tom@fortdental.center", "firstName": "Tom", "lastName": "Dentist", "organizationName": "", "phone": "5551232133", "state": "MD", "streetAddress1": "123 Some Str", "zipCode": "20814" } ], "createdAt": "2024-11-18T17:39:52.406Z", "id": "10334e76-f073-4b5d-8984-81d8e5107857", "name": "BDQ Dental Inc", "npi": "1999999992", "taxId": "555123456", "taxIdType": "EIN", "updatedAt": "2024-11-18T17:39:52.406Z" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Upload Enrollment Document Source: https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload This endpoint returns a pre-signed URL to upload a PDF document to the specified [transaction enrollment](/healthcare/transaction-enrollment). You can only upload PDF documents required to complete a specific task on the enrollment. 1. Call this endpoint with the task ID for the task that requires the document upload and the enrollment ID for the associated transaction enrollment request. These IDs are returned in the responses for the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) and [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoints. 2. The endpoint returns a pre-signed URL that you can use to upload the PDF document to the enrollment record. The URL expires in 24 hours. 3. Use a `PUT` request to upload the attachment file to the pre-signed URL (`uploadURL`) in the response. The request must include a `Content-Type` header set to `application/pdf`. ```bash curl --request PUT \ --url "" \ --header "Content-Type: application/pdf" \ --upload-file /path/to/file.pdf ``` Stedi displays uploaded documents on the enrollment's details page in the Stedi portal. ## Poll for document status [#poll-for-document-status] When you successfully upload the PDF to the pre-signed URL, the document record's status changes from `PENDING` to `UPLOADED`. You must wait for the document's status to change to `UPLOADED` before marking the associated task as complete. This typically takes less than 10 seconds. You can poll the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint to determine when the status has been updated. The following example shows how to poll for a document's status. ```typescript const STEDI_ENROLLMENTS_API = "https://enrollments.us.stedi.com"; async function waitForDocumentUploadedStatus( enrollmentId: string, documentId: string, attempts = 5, intervalMs = 500, ): Promise { const resource = new URL( `/2024-09-01/enrollments/${enrollmentId}`, STEDI_ENROLLMENTS_API, ); for (let attempt = 0; attempt < attempts; attempt++) { const response = await fetch(resource, { headers: { authorization: "", }, }); if (!response.ok) { throw new Error(`HTTP error, status: ${response.status}`); } const enrollment = await response.json(); const documentUploaded = enrollment.documents?.some( (document) => document.id === documentId && document.status === "UPLOADED", ); if (documentUploaded) { return true; } if (attempt < attempts - 1) { await new Promise((resolve) => setTimeout(resolve, intervalMs)); } } return false; } // Usage await waitForDocumentUploadedStatus(enrollmentId, documentId); ``` ## Pending documents [#pending-documents] After 24 hours, Stedi automatically deletes any document records that are still in the `PENDING` status. You'll need to call this endpoint again to get a new pre-signed URL for uploading the document. ## API Specification Returns a pre-signed URL to upload a PDF document for the specified transaction enrollment. **Endpoint:** `POST /enrollments/{enrollmentId}/documents` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`enrollmentId`** (path) (required): The enrollment ID for the transaction enrollment where you want to upload the PDF document. The enrollment ID is returned in the responses for the [Create Enrollment](/healthcare/api-reference/post-enrollment-create-enrollment) and [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoints. It's also listed at the top of the [enrollment's details page](https://portal.stedi.com/app/healthcare/enrollments) in the Stedi portal. - Type: `string` ### Request Body **Schema:** `CreateEnrollmentDocumentUploadRequestContent` **Properties:** - **`name`** (`string`) (required): The file name of the PDF document you want to upload. The name should include the file extension, such as `provider-license.pdf`. This name will be displayed in the Stedi portal. - **`taskId`** (`string`) (required): The ID for the task associated with this document upload. **Example:** ```json { "name": "provider-license.pdf", "taskId": "11111111-1111-4111-8111-111111111111" } ``` ### Responses #### 200 CreateEnrollmentDocumentUpload 200 response **Schema:** `CreateEnrollmentDocumentUploadResponseContent` **Properties:** - **`documentId`** (`string`) (required): A unique identifier for the document record within Stedi. - **`enrollmentId`** (`string`) (required): The enrollment ID for the transaction enrollment request associated with the PDF document. - **`uploadUrl`** (`string`) (required): The pre-signed URL you can use to upload the PDF document. This URL expires after 24 hours. **Example:** ```json { "documentId": "doc-123e4567-e89b-12d3-a456-426614174000", "enrollmentId": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "uploadUrl": "https://s3.amazonaws.com/enrollment-documents/db6675c5-7bg7-4af9-8c68-a54a336d2911/provider-license.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=..." } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Update Enrollment Source: https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-update-enrollment This endpoint allows you to update [transaction enrollments](/healthcare/transaction-enrollment) that are still in `DRAFT` status. If you need to make changes to an enrollment that is already in `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED`, `PROVISIONING`, `LIVE`, `REJECTED`, or `CANCELED` status, contact support. Calling this endpoint completely overwrites the previous request record. You **must** provide all the information for the enrollment in the request, not just the properties you want to update. ## API Specification Updates an existing enrollment request. Only enrollments in DRAFT status can be updated. Once an enrollment is submitted, it cannot be modified. **Endpoint:** `POST /enrollments/{enrollmentId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`enrollmentId`** (path) (required): The Stedi-assigned identifier for the enrollment. - Type: `string` ### Request Body **Schema:** `UpdateEnrollmentRequestContent` **Properties:** - **`aggregationPreference`** (`any`): Preference for how the payer should group 835 Electronic Remittance Advice (ERA) transactions. Only set this property for 835 ERA enrollments. - If you include this property for a non-ERA enrollment, Stedi rejects the enrollment request with an HTTP `400` error. - If the payer doesn't support the requested aggregation type, Stedi rejects the enrollment request with an HTTP `400` error. - If not set, Stedi automatically selects a default based on the payer's supported aggregation types and the available identifiers for the provider. - Stedi will attempt to enroll with this preference, but it's not guaranteed. Each payer has its own restrictions and behaviors. - **`aggregationPreference (variant 1).taxId`** (`string`) (required): The Taxpayer Identification Number (TIN) the payer should use for aggregation. - **`aggregationPreference (variant 2).npi`** (`string`) (required): The National Provider Identifier (NPI) the payer should use for aggregation. - **`payer`** (`object`) (required): The payer you want to enroll with. - **`payer.id`** (`string`): Use `idOrAlias` instead. This property will be removed in the future. - **`payer.idOrAlias`** (`string`): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can use the primary payer ID, the Stedi payer ID, or any listed aliases for the payer. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`primaryContact`** (`object`) (required): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - Either `organizationName` _or_ `firstName` and `lastName` are required. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - If you're submitting enrollment requests on a provider's behalf, you may want to set the phone number and email to your own contact details. Do this when you want the payer to contact you about the enrollment status instead of the provider directly. - These contacts are for convenience only. You can specify different contacts on enrollment requests as needed. - **`primaryContact.city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`primaryContact.country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`primaryContact.email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`primaryContact.firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`primaryContact.lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`primaryContact.organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`primaryContact.phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`primaryContact.state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`primaryContact.streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`primaryContact.streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`primaryContact.zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`provider`** (`object`) (required): The provider you want to enroll with the payer. This must be an existing provider record within Stedi. - **`provider.id`** (`string`) (required): The Stedi-assigned identifier for the provider. The [Create Provider](https://www.stedi.com/docs/api-reference/healthcare/post-enrollment-create-provider) endpoint returns this as the `id` property. - **`providerTransactionAccessNumber`** (`string`): This property is required for payers that require a Provider Transaction Access Number (PTAN). The PTAN is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`reason`** (`string`): This shape is deprecated since 2025-10-07: Only Stedi can set or update this property, and it will be removed in a future release. - **`requestedEffectiveDate`** (`string`): The requested effective date for the enrollment in YYYYMMDD format. This is the date you'd like the enrollment to take effect with the payer. For example, setting this to `20260601` for an 835 Electronic Remittance Advice (ERAs) enrollment means you want to start receiving ERAs through Stedi on that date. Stedi processes enrollments accordingly, but can't guarantee that the enrollment will be effective on this exact date. - You can submit today's date or a future date up to 6 months from today. - If not set for draft enrollments, this property remains empty. - If not set for submitted enrollments, Stedi defaults to the enrollment's submission date. - If you include this property for a payer that doesn't support requested effective dates, Stedi rejects the request with an HTTP `400` error. - **`source`** (`string`): The source of the enrollment. - Allowed values: `API`, `UI`, `IMPORT`, `AUTO_ENROLLMENT`, `AUTOMATED_TASK` - **`status`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`transactions`** (`any`) (required): Specifies which transaction types are included in the enrollment. - **`transactions (variant 1).eligibilityCheck`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 1).eligibilityCheck.enroll`** (`boolean`) (required) - **`transactions (variant 2).claimStatus`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 2).claimStatus.enroll`** (`boolean`) (required) - **`transactions (variant 3).professionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 3).professionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 4).institutionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 4).institutionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 5).dentalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 5).dentalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 6).claimPayment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 6).claimPayment.enroll`** (`boolean`) (required) - **`transactions (variant 7).solicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 7).solicitedClaimAttachment.enroll`** (`boolean`) (required) - **`transactions (variant 8).unsolicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 8).unsolicitedClaimAttachment.enroll`** (`boolean`) (required) - **`userEmail`** (`string`) (required): The email address where Stedi should send updates about the enrollment. We'll use it to notify you when there are next steps and send updates on the enrollment's status. - This email address can be different from the `primaryContact.email` where the payer sends communications about the enrollment. - For [automatic enrollment requests](https://www.stedi.com/docs/healthcare/create-manage-transaction-enrollments#automatic-enrollment-requests), Stedi sets this to the oldest account member with the Admin role. **Example:** ```json { "aggregationPreference": { "taxId": "123456789" }, "payer": { "idOrAlias": "87726" }, "primaryContact": { "city": "A City", "email": "test@example.com", "firstName": "Updated First Name", "lastName": "Updated Last Name", "phone": "3331234567", "state": "MD", "streetAddress1": "123 Some Str.", "zipCode": "20814" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998" }, "requestedEffectiveDate": "20250301", "status": "STEDI_ACTION_REQUIRED", "transactions": { "claimPayment": { "enroll": true } }, "userEmail": "test@example.com" } ``` ### Responses #### 200 UpdateEnrollment 200 response **Schema:** `UpdateEnrollmentResponseContent` **Properties:** - **`aggregationPreference`** (`any`): Preference for how the payer should group 835 Electronic Remittance Advice (ERA) transactions. Only set this property for 835 ERA enrollments. - If you include this property for a non-ERA enrollment, Stedi rejects the enrollment request with an HTTP `400` error. - If the payer doesn't support the requested aggregation type, Stedi rejects the enrollment request with an HTTP `400` error. - If not set, Stedi automatically selects a default based on the payer's supported aggregation types and the available identifiers for the provider. - Stedi will attempt to enroll with this preference, but it's not guaranteed. Each payer has its own restrictions and behaviors. - **`aggregationPreference (variant 1).taxId`** (`string`) (required): The Taxpayer Identification Number (TIN) the payer should use for aggregation. - **`aggregationPreference (variant 2).npi`** (`string`) (required): The National Provider Identifier (NPI) the payer should use for aggregation. - **`createdAt`** (`string`) (required): The date and time when the enrollment was created within Stedi. - **`documents`** (`array of EnrollmentDocument objects`): Documents associated with this enrollment, excluding deleted documents. - **`documents[].contentType`** (`string`): The content type of the document. - **`documents[].createdAt`** (`string`) (required): The date and time when the document was created. - **`documents[].enrollmentId`** (`string`) (required): The enrollment ID this document is associated with. - **`documents[].id`** (`string`) (required): The unique identifier for the document. - **`documents[].name`** (`string`) (required): The name of the document. - **`documents[].size`** (`number`): The size of the document in bytes. - **`documents[].status`** (`string`) (required): Indicates whether the document file has been successfully uploaded to Stedi. - Allowed values: `PENDING`, `UPLOADED`, `FAILED`, `DELETED` - **`documents[].taskId`** (`string`): The task ID associated with this document, if it was created or processed as part of a task. - **`documents[].updatedAt`** (`string`) (required): The date and time when the document was last updated. - **`history`** (`array of EnrollmentHistoryEntry objects`): The history of updates to this enrollment, such as status changes. This property is experimental and may change in the future. - **`history[].changedAt`** (`string`) (required): The date and time when this change occurred. - **`history[].changedBy`** (`string`) (required): The source or system that triggered this change. - **`history[].newStatus`** (`string`) (required): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`history[].previousStatus`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`history[].type`** (`string`) (required): The type of change recorded in the enrollment history. - Allowed values: `STATUS_CHANGE` - **`id`** (`string`) (required): The Stedi-assigned identifier for the enrollment request. - **`lastEraReceivedAt`** (`string`): The timestamp of the most recent 835 ERA (Electronic Remittance Advice) Stedi received for this enrollment, based on the enrollment's payer ID, provider NPI, and provider tax ID. Stedi automatically updates this property for each new ERA. - This property is only returned for ERA enrollments in `LIVE` status with at least one matching ERA from the payer. - If this timestamp doesn't match your expected timeline for ERA processing, there may be an upstream issue. Contact Stedi support for assistance. - **`payer`** (`object`) (required): Output structure containing payer information in enrollment responses. - **`payer.name`** (`string`): The payer's name, such as `Cigna` or `UnitedHealthcare`. - **`payer.stediPayerId`** (`string`) (required): The unique Stedi assigned identifier for the payer. - **`payer.submittedPayerIdOrAlias`** (`string`): The payer ID or alias used when creating the enrollment request. For example, `62308` and `CIGNA` are both supported for Cigna. You can find a list of all supported payer IDs and aliases in the [Payer Network](https://www.stedi.com/healthcare/network). - **`primaryContact`** (`object`) (required): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - Either `organizationName` _or_ `firstName` and `lastName` are required. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - If you're submitting enrollment requests on a provider's behalf, you may want to set the phone number and email to your own contact details. Do this when you want the payer to contact you about the enrollment status instead of the provider directly. - These contacts are for convenience only. You can specify different contacts on enrollment requests as needed. - **`primaryContact.city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`primaryContact.country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`primaryContact.email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`primaryContact.firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`primaryContact.lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`primaryContact.organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`primaryContact.phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`primaryContact.state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`primaryContact.streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`primaryContact.streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`primaryContact.zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`provider`** (`object`) (required): Complete provider information including both read-only and mutable fields. - **`provider.id`** (`string`) (required): The Stedi-assigned identifier for the provider. The [Create Provider](https://www.stedi.com/docs/api-reference/healthcare/post-enrollment-create-provider) endpoint returns this as the `id` property. - **`provider.name`** (`string`) (required): The provider's name, such as `Example Dental Associates, LLC`. - **`provider.npi`** (`string`) (required): The provider's National Provider Identifier (NPI). This is a 10-digit number assigned by the Centers for Medicare & Medicaid Services (CMS) to healthcare providers in the United States. It is used to identify providers in healthcare transactions. - **`provider.taxId`** (`string`) (required): The provider's tax identification number (SSN or EIN). This is used to identify the provider for tax and administrative purposes. - **`provider.taxIdType`** (`string`) (required): The type of tax identification number. This indicates whether the tax ID is a Social Security Number (SSN) or Employer Identification Number (EIN). - **`providerTransactionAccessNumber`** (`string`): This property is required for payers that require a Provider Transaction Access Number (PTAN). The PTAN is a Medicare-issued number given to providers upon enrollment with Medicare. This number is usually six digits and is assigned based on the type of service and the location of the provider. Upon enrollment, Medicare Administrating Contracting (MAC) providers should receive their assigned PTAN number in their approval letter. - **`reason`** (`string`): Reasons why the enrollment request is still in `PROVISIONING` status, may take additional time to process, or was rejected by the payer. Only Stedi can set or update this property. - **`requestedEffectiveDate`** (`string`): The requested effective date for the enrollment in YYYYMMDD format. This is the date the submitter would like the enrollment to take effect with the payer. If not provided during submission, Stedi defaults to the enrollment's submission date. Not all payers support requested effective dates. Stedi can't guarantee that the enrollment will be effective with the payer on this exact date. - **`source`** (`string`): The source of the enrollment. - Allowed values: `API`, `UI`, `IMPORT`, `AUTO_ENROLLMENT`, `AUTOMATED_TASK` - **`status`** (`string`): The status of the enrollment. You can submit enrollments with either `DRAFT` or `STEDI_ACTION_REQUIRED` status - the default is `DRAFT` if not included. Set this to `STEDI_ACTION_REQUIRED` when you're ready for Stedi to begin processing the enrollment. Once an enrollment is `STEDI_ACTION_REQUIRED`, only Stedi can set or update its status. - Allowed values: `DRAFT`, `SUBMITTED`, `PROVISIONING`, `LIVE`, `REJECTED`, `CANCELED`, `STEDI_ACTION_REQUIRED`, `PROVIDER_ACTION_REQUIRED` - **`statusLastUpdatedAt`** (`string`) (required): The date and time when the enrollment status was last updated. This timestamp is used to track enrollment processing durations and enables filtering to identify recently changed enrollments. It automatically updates whenever an enrollment's status changes but remains unchanged during other updates. - **`submittedAt`** (`string`): The date and time when the enrollment was submitted. If the enrollment is in `DRAFT` status, `submittedAt` is not present. When the enrollment transitions from draft to `STEDI_ACTION_REQUIRED`, `submittedAt` is updated to the submission time. If the enrollment was created and submitted immediately, the `submittedAt` time will be equal or close to the `createdAt` time. - **`tasks`** (`array of Task objects`): Tasks associated with this enrollment representing work that needs to be completed. Each task has a responsible party and specific definition. Text values for the `BANK_ACCOUNT_NUMBER` and `BANK_ROUTING_NUMBER` task fields show at most their last four characters. Every other character is replaced with `*`. - **`tasks[].completedAt`** (`string`): The timestamp when the task was completed. - **`tasks[].definition`** (`any`) (required): A discriminated union of task definitions. Supports multiple task types with future extensibility. - **`tasks[].definition (variant 1).manualTask`** (`object`) (required): A task assigned to a responsible party that requires them to collect and submit a defined set of fields. The task is completed by supplying a `ManualTaskResponse` whose values satisfy the declared `fields`. - **`tasks[].definition (variant 1).manualTask.fields`** (`array of ManualTaskField objects`) (required): Fields required to complete the task. Each entry defines the key, human-readable label, optional description, and type for values in the response. Can be empty for instruction-only tasks. - **`tasks[].definition (variant 1).manualTask.fields[].description`** (`string`): Additional context explaining what to provide in the response. For example, details about what supporting documentation (such as the provider's W-9 form) is required. - **`tasks[].definition (variant 1).manualTask.fields[].fieldType`** (`string`) (required): The accepted field types for a manual task. - Allowed values: `TEXT`, `DOCUMENT` - **`tasks[].definition (variant 1).manualTask.fields[].key`** (`string`) (required): A unique identifier for this field within the task, such as `ENROLLMENT_FORM`. - **`tasks[].definition (variant 1).manualTask.fields[].label`** (`string`) (required): Human-readable label for this field, such as `Provider NPI` or `Tax ID`. - **`tasks[].definition (variant 1).manualTask.instructions`** (`string`) (required): Instructions for completing the task. - **`tasks[].definition (variant 1).manualTask.links`** (`array of TaskLink objects`): Links to help complete the task. This can include payer portals, reference documentation, or document download links for Stedi-provided template PDFs. - **`tasks[].definition (variant 1).manualTask.links[].label`** (`string`) (required): Descriptive label for the URL, such as `Provider Portal` or `W-9 Template`. - **`tasks[].definition (variant 1).manualTask.links[].url`** (`string`) (required): The URL for the resource. - **`tasks[].id`** (`string`) (required): The unique, Stedi-assigned identifier for the task. - **`tasks[].isComplete`** (`boolean`) (required): Whether the task has been marked as complete through either the API or the Stedi portal. - **`tasks[].rank`** (`number`) (required): The rank order of this task. Tasks with lower numbers must be completed first. For example, a task with rank `1` must be completed before a task with rank `2`. - **`tasks[].responseData`** (`any`): A discriminated union of task response data. Contains structured data collected when completing specific task types. - **`tasks[].responseData (variant 1).manualTask`** (`object`) (required): Values provided when updating or completing a manual task. Visit [Manage enrollment tasks](https://www.stedi.com/docs/healthcare/transaction-enrollment-tasks-documents#api) for details. - **`tasks[].responseData (variant 1).manualTask.values`** (`array of ManualTaskResponseKeyValue objects`) (required): Values for fields in the task definition. Each value's `key` must have a corresponding field `key`. When updating a task without completing it, you can submit a subset of fields; the supplied values are merged into any previously saved values. Completing a task (`completed: true`) requires a value for every field. - **`tasks[].responseData (variant 1).manualTask.values[].key`** (`string`) (required): Identifier that matches a field `key` in the task definition. - **`tasks[].responseData (variant 1).manualTask.values[].value`** (`any`) (required): The value supplied for a `ManualTaskField`. The variant used must match the field's declared `FieldType`. Supply multiple entries with distinct keys to capture multiple documents or values. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 1).text`** (`string`) (required): Free-form text when the `fieldType` is `TEXT`. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document`** (`object`) (required): A reference to a document uploaded to enrollment, supplied as the `document` variant of a `ManualTaskResponseValue`. - **`tasks[].responseData (variant 1).manualTask.values[].value (variant 2).document.documentId`** (`string`) (required): The `documentId` returned for a file uploaded through the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. - **`tasks[].responsibleParty`** (`string`) (required): The party responsible for completing a task. - Allowed values: `PROVIDER`, `STEDI` - **`transactions`** (`any`) (required): Specifies which transaction types are included in the enrollment. - **`transactions (variant 1).eligibilityCheck`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 1).eligibilityCheck.enroll`** (`boolean`) (required) - **`transactions (variant 2).claimStatus`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 2).claimStatus.enroll`** (`boolean`) (required) - **`transactions (variant 3).professionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 3).professionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 4).institutionalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 4).institutionalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 5).dentalClaimSubmission`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 5).dentalClaimSubmission.enroll`** (`boolean`) (required) - **`transactions (variant 6).claimPayment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 6).claimPayment.enroll`** (`boolean`) (required) - **`transactions (variant 7).solicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 7).solicitedClaimAttachment.enroll`** (`boolean`) (required) - **`transactions (variant 8).unsolicitedClaimAttachment`** (`object`) (required): Represents the enrollment status for a specific transaction type. - **`transactions (variant 8).unsolicitedClaimAttachment.enroll`** (`boolean`) (required) - **`updatedAt`** (`string`) (required): The date and time when the enrollment was updated. - **`userEmail`** (`string`) (required): The email address where Stedi should send updates about the enrollment. We'll use it to notify you when there are next steps and send updates on the enrollment's status. - This email address can be different from the `primaryContact.email` where the payer sends communications about the enrollment. - For [automatic enrollment requests](https://www.stedi.com/docs/healthcare/create-manage-transaction-enrollments#automatic-enrollment-requests), Stedi sets this to the oldest account member with the Admin role. **Example:** ```json { "aggregationPreference": { "taxId": "123456789" }, "createdAt": "2024-11-07T05:31:56Z", "history": [ { "changedAt": "2025-11-07T05:31:56Z", "changedBy": "test@example.com", "newStatus": "STEDI_ACTION_REQUIRED", "type": "STATUS_CHANGE" }, { "changedAt": "2024-11-07T05:31:56Z", "changedBy": "test@example.com", "newStatus": "DRAFT", "type": "STATUS_CHANGE" } ], "id": "db6675c5-7bg7-4af9-8c68-a54a336d2911", "payer": { "name": "UnitedHealthcare", "stediPayerId": "KMQTZ", "submittedPayerIdOrAlias": "87726" }, "primaryContact": { "city": "A City", "country": "US", "email": "test@example.com", "firstName": "Updated First Name", "lastName": "Updated Last Name", "phone": "3331234567", "state": "MD", "streetAddress1": "123 Some Str.", "zipCode": "20814" }, "provider": { "id": "db6665c5-7b97-4af9-8c68-a00a336c2998", "name": "Test Medical Provider", "npi": "1234567890", "taxId": "123456789", "taxIdType": "EIN" }, "requestedEffectiveDate": "20250301", "source": "API", "status": "STEDI_ACTION_REQUIRED", "statusLastUpdatedAt": "2024-11-07T05:31:56Z", "transactions": { "claimPayment": { "enroll": true } }, "updatedAt": "2024-11-18T07:25:42Z", "userEmail": "test@example.com" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Update Provider Source: https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-update-provider This endpoint allows you to update information for an existing provider. For example, you may want to add an additional contact. Please note: - Calling this endpoint completely overwrites the previous request record. You **must** provide all the information for the provider in the request, not just the properties you want to update. - Updating a provider record doesn't affect associated enrollments that are in `SUBMITTED`, `PROVISIONING` or `LIVE` status. If you need to update the provider details for an enrollment with these statuses, contact support. ## API Specification Updates an existing provider's information. Note that NPI and tax ID cannot be changed after creation. **Endpoint:** `POST /providers/{providerId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`providerId`** (path) (required): The Stedi-assigned identifier for the provider you want to update. - Type: `string` ### Request Body **Schema:** `UpdateProviderRequestContent` **Properties:** - **`contacts`** (`array of ProviderContact objects`): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - Either `organizationName` _or_ `firstName` and `lastName` are required. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - If you're submitting enrollment requests on a provider's behalf, you may want to set the phone number and email to your own contact details. Do this when you want the payer to contact you about the enrollment status instead of the provider directly. - These contacts are for convenience only. You can specify different contacts on enrollment requests as needed. - **`contacts[].city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`contacts[].country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`contacts[].email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`contacts[].firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`contacts[].lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`contacts[].organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`contacts[].phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`contacts[].state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`contacts[].streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`contacts[].streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`contacts[].zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`name`** (`string`) (required): The provider's business name. This is typically the provider's practice name, such as `Dental Associates, LLC`, but it can also be the provider's first and last name. **Example:** ```json { "contacts": [ { "city": "A City", "email": "bob@fortdental.center", "firstName": "Test", "lastName": "Tester", "phone": "5551234567", "state": "WA", "streetAddress1": "123 Some Str", "zipCode": "12345" } ], "name": "TEST Updated Dental Inc" } ``` ### Responses #### 200 UpdateProvider 200 response **Schema:** `UpdateProviderResponseContent` **Properties:** - **`contacts`** (`array of ProviderContact objects`): The contact information for the provider. These contacts appear as prepopulated options for contact information when creating enrollment requests for this provider in the Stedi portal. They aren't automatically added to enrollment requests. These contacts should specify where payers should send communications about the enrollment, if needed. - **`contacts[].city`** (`string`) (required): The contact's city. This should match exactly what the payer has on file for the provider. - **`contacts[].country`** (`string`): Country of an address. - Allowed values: `US`, `CA` - **`contacts[].email`** (`string`) (required): The contact's email address. Set this to where you want the payer to send communications regarding the enrollment. This can be different from the provider's email if needed. - **`contacts[].firstName`** (`string`): The contact's first name. This should match exactly what the payer has on file for the provider. - **`contacts[].lastName`** (`string`): The contact's last name. This should match exactly what the payer has on file for the provider. - **`contacts[].organizationName`** (`string`): The contact's business name. This should match exactly what the payer has on file for the provider. - **`contacts[].phone`** (`string`) (required): The contact's phone number. Set this to where you want the payer to direct communications regarding the enrollment. This can be different from the provider's phone number if needed. - **`contacts[].state`** (`string`) (required): US state, territory, and Armed Forces codes plus Canadian province and territory codes, using standard two-letter abbreviations. Each code belongs to one country and must agree with the address `country`. - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `PW`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `VI`, `WA`, `WV`, `WI`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NS`, `NT`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT` - **`contacts[].streetAddress1`** (`string`) (required): The contact's street address, including the street number, name, and any suite or apartment number. This should match exactly what the payer has on file for the provider. - **`contacts[].streetAddress2`** (`string`): The contact's street address continued. This should match exactly what the payer has on file for the provider. - **`contacts[].zipCode`** (`string`) (required): The contact's ZIP or postal code. For a US address, this is a five-digit ZIP code (such as `12345`) or a ZIP + 4-digit extension (`12345-4321`. For a Canadian address, this is a six-character postal code, which is returned in `A1A 1A1` form. This should match exactly what the payer has on file for the provider. - **`createdAt`** (`string`): The date and time Stedi created the provider record. - **`id`** (`string`) (required): A unique identifier Stedi assigns to this provider. - **`name`** (`string`) (required): The provider's business name. This is typically the provider's practice name, such as `Dental Associates, LLC`, but it can also be the provider's first and last name. - **`npi`** (`string`) (required): The provider's [National Provider Identifier (NPI)](https://npiregistry.cms.hhs.gov/search). This is a 10-digit number that is unique to the provider. Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two provider records with the same `npi` as long as they have different values for `taxId`. - **`taxId`** (`string`): The provider's tax ID, as specified by `taxIdType`. This identifier has to be provided without any separators, such as dashes or spaces. For example 111-22-3333 is invalid but `111223333` is valid. Each provider record must have a unique `npi` and `taxId` combination. For example, you can create two provider records with the same `taxId` as long as they have different values for `npi`. - **`taxIdType`** (`string`): The type of tax identification number. Organizations (Type 2 NPIs) must use `EIN`, while individual providers (Type 1 NPIs) can use either `EIN` or `SSN`. - Allowed values: `EIN`, `SSN` - **`updatedAt`** (`string`): The date and time Stedi last updated the provider record. **Example:** ```json { "contacts": [ { "city": "A City", "country": "US", "email": "bob@fortdental.center", "firstName": "Test", "lastName": "Tester", "organizationName": "", "phone": "5551234567", "state": "WA", "streetAddress1": "123 Some Str", "zipCode": "12345" } ], "createdAt": "2024-11-18T17:39:52.406Z", "id": "10334e76-f073-4b5d-8984-81d8e5107857", "name": "TEST Updated Dental Inc", "npi": "1999999999", "taxId": "111222333", "taxIdType": "EIN", "updatedAt": "2024-11-19T19:24:33.246Z" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Update Enrollment Task Source: https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-update-task This endpoint updates the completion status and data of a task associated with a [transaction enrollment](/healthcare/transaction-enrollment). Stedi adds tasks to an enrollment when specific actions are required to complete the enrollment process. For example, we might add a task to request additional information from the provider. When the task's `responsibleParty` is set to `PROVIDER`, you can use this endpoint to mark the task as completed once the provider has taken the required action. You can also use this endpoint to mark tasks as incomplete if they were marked complete in error. 1. Call this endpoint with the `completed` property set to `true` to mark the task as completed. Optionally, provide additional details in the `responseData` object. 2. The endpoint returns the updated task record. Stedi displays the task as completed in the Stedi portal and proceeds with the enrollment process. ## Task rank order [#task-rank-order] You must complete tasks in order of their `rank` property. If you try to complete a task out of order, the endpoint returns an HTTP `400` error. Ranks apply to every task on the enrollment, including internal tasks that Stedi completes. Stedi returns only the tasks assigned to you, so you can receive this error even when you're completing the lowest-ranked task in the response. Visit [Complete tasks in rank order](/healthcare/transaction-enrollment-tasks-documents#complete-tasks-in-rank-order) to learn how to resolve these errors. ## API Specification Updates a task associated with an enrollment. **Endpoint:** `POST /tasks/{taskId}` **Base URL:** `https://enrollments.us.stedi.com/2024-09-01` ### Parameters - **`taskId`** (path) (required): The Stedi-assigned identifier for the task to complete. You can get the task ID from either the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) or [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoint. - Type: `string` ### Request Body **Schema:** `UpdateTaskPostRequestContent` **Properties:** - **`completed`** (`boolean`): Indicates whether the task is completed. Set to `true` to mark the task as complete. If omitted, the default is `false`. - **`responseData`** (`any`): A discriminated union of task response data. Contains structured data collected when completing specific task types. - **`responseData (variant 1).manualTask`** (`object`) (required): Values provided when updating or completing a manual task. Visit [Manage enrollment tasks](https://www.stedi.com/docs/healthcare/transaction-enrollment-tasks-documents#api) for details. - **`responseData (variant 1).manualTask.values`** (`array of ManualTaskResponseKeyValue objects`) (required): Values for fields in the task definition. Each value's `key` must have a corresponding field `key`. When updating a task without completing it, you can submit a subset of fields; the supplied values are merged into any previously saved values. Completing a task (`completed: true`) requires a value for every field. - **`responseData (variant 1).manualTask.values[].key`** (`string`) (required): Identifier that matches a field `key` in the task definition. - **`responseData (variant 1).manualTask.values[].value`** (`any`) (required): The value supplied for a `ManualTaskField`. The variant used must match the field's declared `FieldType`. Supply multiple entries with distinct keys to capture multiple documents or values. - **`responseData (variant 1).manualTask.values[].value (variant 1).text`** (`string`) (required): Free-form text when the `fieldType` is `TEXT`. - **`responseData (variant 1).manualTask.values[].value (variant 2).document`** (`object`) (required): A reference to a document uploaded to enrollment, supplied as the `document` variant of a `ManualTaskResponseValue`. - **`responseData (variant 1).manualTask.values[].value (variant 2).document.documentId`** (`string`) (required): The `documentId` returned for a file uploaded through the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. **Example:** ```json { "completed": true, "responseData": { "manualTask": { "values": [ { "key": "medicaidId", "value": { "text": "ABCD12" } } ] } } } ``` ### Responses #### 200 UpdateTaskPost 200 response **Schema:** `UpdateTaskPostResponseContent` **Properties:** - **`task`** (`object`) (required): A task representing work that needs to be completed. - **`task.completedAt`** (`string`): The timestamp when the task was completed. - **`task.definition`** (`any`) (required): A discriminated union of task definitions. Supports multiple task types with future extensibility. - **`task.definition (variant 1).manualTask`** (`object`) (required): A task assigned to a responsible party that requires them to collect and submit a defined set of fields. The task is completed by supplying a `ManualTaskResponse` whose values satisfy the declared `fields`. - **`task.definition (variant 1).manualTask.fields`** (`array of ManualTaskField objects`) (required): Fields required to complete the task. Each entry defines the key, human-readable label, optional description, and type for values in the response. Can be empty for instruction-only tasks. - **`task.definition (variant 1).manualTask.fields[].description`** (`string`): Additional context explaining what to provide in the response. For example, details about what supporting documentation (such as the provider's W-9 form) is required. - **`task.definition (variant 1).manualTask.fields[].fieldType`** (`string`) (required): The accepted field types for a manual task. - Allowed values: `TEXT`, `DOCUMENT` - **`task.definition (variant 1).manualTask.fields[].key`** (`string`) (required): A unique identifier for this field within the task, such as `ENROLLMENT_FORM`. - **`task.definition (variant 1).manualTask.fields[].label`** (`string`) (required): Human-readable label for this field, such as `Provider NPI` or `Tax ID`. - **`task.definition (variant 1).manualTask.instructions`** (`string`) (required): Instructions for completing the task. - **`task.definition (variant 1).manualTask.links`** (`array of TaskLink objects`): Links to help complete the task. This can include payer portals, reference documentation, or document download links for Stedi-provided template PDFs. - **`task.definition (variant 1).manualTask.links[].label`** (`string`) (required): Descriptive label for the URL, such as `Provider Portal` or `W-9 Template`. - **`task.definition (variant 1).manualTask.links[].url`** (`string`) (required): The URL for the resource. - **`task.id`** (`string`) (required): The unique, Stedi-assigned identifier for the task. - **`task.isComplete`** (`boolean`) (required): Whether the task has been marked as complete through either the API or the Stedi portal. - **`task.rank`** (`number`) (required): The rank order of this task. Tasks with lower numbers must be completed first. For example, a task with rank `1` must be completed before a task with rank `2`. - **`task.responseData`** (`any`): A discriminated union of task response data. Contains structured data collected when completing specific task types. - **`task.responseData (variant 1).manualTask`** (`object`) (required): Values provided when updating or completing a manual task. Visit [Manage enrollment tasks](https://www.stedi.com/docs/healthcare/transaction-enrollment-tasks-documents#api) for details. - **`task.responseData (variant 1).manualTask.values`** (`array of ManualTaskResponseKeyValue objects`) (required): Values for fields in the task definition. Each value's `key` must have a corresponding field `key`. When updating a task without completing it, you can submit a subset of fields; the supplied values are merged into any previously saved values. Completing a task (`completed: true`) requires a value for every field. - **`task.responseData (variant 1).manualTask.values[].key`** (`string`) (required): Identifier that matches a field `key` in the task definition. - **`task.responseData (variant 1).manualTask.values[].value`** (`any`) (required): The value supplied for a `ManualTaskField`. The variant used must match the field's declared `FieldType`. Supply multiple entries with distinct keys to capture multiple documents or values. - **`task.responseData (variant 1).manualTask.values[].value (variant 1).text`** (`string`) (required): Free-form text when the `fieldType` is `TEXT`. - **`task.responseData (variant 1).manualTask.values[].value (variant 2).document`** (`object`) (required): A reference to a document uploaded to enrollment, supplied as the `document` variant of a `ManualTaskResponseValue`. - **`task.responseData (variant 1).manualTask.values[].value (variant 2).document.documentId`** (`string`) (required): The `documentId` returned for a file uploaded through the [Upload Enrollment Document](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-document-upload) endpoint. - **`task.responsibleParty`** (`string`) (required): The party responsible for completing a task. - Allowed values: `PROVIDER`, `STEDI` **Example:** ```json { "task": { "completedAt": "2024-06-01T12:00:00Z", "definition": { "manualTask": { "fields": [ { "fieldType": "TEXT", "key": "medicaidId", "label": "Medicaid Provider Identifier" } ], "instructions": "Please provide your Medicaid Provider Identifier." } }, "id": "01937d50-1234-7890-abcd-567890abcdef", "isComplete": true, "rank": 1, "responseData": { "manualTask": { "values": [ { "key": "medicaidId", "value": { "text": "ABCD12" } } ] } }, "responsibleParty": "PROVIDER" } } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 QuotaExceededException 429 response **Schema:** `QuotaExceededExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Create Event Destination Source: https://www.stedi.com/docs/healthcare/api-reference/post-event-destinations-create-destination This endpoint creates an event destination to receive Stedi events at a specific URL. You can create up to 16 event destinations per Stedi account. 1. Call this endpoint with the destination name, event types you want to receive, and the destination URL where you want to receive events. 2. Stedi creates the destination. 3. The endpoint returns the destination details, including a signing secret that you can use to [verify the authenticity of event payloads](/healthcare/event-destinations-message-handling#verify-authenticity-and-receipt-time). Store the signing secret securely. You can review and manage all destinations you create through this endpoint on the [Event Destinations page](https://portal.stedi.com/app/settings/developer/event-destinations). ## API Specification Creates an event destination. Returns destination details and a signing secret for verifying event payloads. **Endpoint:** `POST /destinations` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. If not set, Stedi generates one automatically. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents duplicate operations due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `CreateEventDestinationRequestContent` **Properties:** - **`concurrencyLimit`** (`number`): Maximum concurrent deliveries for this destination. If not set, Stedi applies your account default (typically 5). Stedi rejects requests exceeding your account maximum (typically 20) with a `400` error. Contact Stedi to change your limits. - **`description`** (`string`): A description of the destination's purpose, such as "Receives transaction enrollment task notifications." - **`destinationUrl`** (`string`) (required): The URL where you want Stedi to deliver payloads through HTTP `POST`. - **`eventTypes`** (`array of strings`) (required): The event types you want Stedi to send to this destination. Visit [event types](https://www.stedi.com/docs/healthcare/event-destinations-event-types) for a complete list. - **`name`** (`string`) (required): A human-readable name for the destination. Stedi displays this name in the portal. - **`status`** (`string`): The desired status of a destination, as set by the user. - Allowed values: `ENABLED`, `DISABLED` **Example:** ```json { "destinationUrl": "https://example.com/webhooks", "eventTypes": [ "enrollment.activated" ], "name": "My Destination", "status": "ENABLED" } ``` ### Responses #### 201 CreateEventDestination 201 response **Schema:** `CreateEventDestinationResponseContent` **Properties:** - **`concurrencyLimit`** (`number`): The maximum number of concurrent deliveries for this destination. Contact Stedi to change your account limits. - **`createdAt`** (`string`) (required): Creation timestamp for this destination. - **`description`** (`string`) (required): A description of the destination's purpose, such as "Receives transaction enrollment task notifications." - **`destinationUrl`** (`string`) (required): The URL where Stedi delivers payloads through HTTP `POST`. - **`eventTypes`** (`array of strings`) (required): The event types Stedi sends to this destination. Visit [event types](https://www.stedi.com/docs/healthcare/event-destinations-event-types) for a complete list. - **`id`** (`string`) (required): The unique identifier for the destination. - **`lastDeliveryTime`** (`string`): The timestamp for Stedi's most recent delivery attempt to this destination. Absent when Stedi hasn't yet attempted a delivery. - **`name`** (`string`) (required): A human-readable name for the destination. Stedi displays this name in the portal. - **`signingSecret`** (`string`) (required): The signing secret for verifying event payloads. Store it securely. Visit [verify event signatures](https://www.stedi.com/docs/healthcare/event-destinations-message-handling#verify-authenticity-and-receipt-time) for details. - **`status`** (`string`) (required): The destination's current status. Stedi only sends event payloads to `ENABLED` destinations. - Allowed values: `ENABLED`, `DISABLED` - **`updatedAt`** (`string`) (required): Last update timestamp for this destination. **Example:** ```json { "createdAt": "2026-02-01T12:00:00Z", "description": "Receives enrollment notifications", "destinationUrl": "https://example.com/webhooks", "eventTypes": [ "enrollment.activated" ], "id": "dst_550e8400-e29b-41d4-a716-446655440000", "name": "My Destination", "signingSecret": "whsec_YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=", "status": "ENABLED", "updatedAt": "2026-02-01T12:00:00Z" } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 EventDestinationsLimitExceededException 403 response **Schema:** `EventDestinationsLimitExceededExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 413 ContentTooLargeException 413 response **Schema:** `ContentTooLargeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # Rotate Event Destination Secret Source: https://www.stedi.com/docs/healthcare/api-reference/post-event-destinations-rotate-destination-secret This endpoint rotates the signing secret for an event destination. Secret rotation is an important security practice that helps protect your event delivery endpoint. 1. Call this endpoint with the destination's ID and optionally specify how long the previous secret remains valid (default is 24 hours). 2. Stedi generates a new signing secret. 3. The endpoint returns the new secret and the expiration time for the previous secret. The previous secret remains valid for the grace period you specify, allowing you to update your application to use the new secret without disrupting event delivery. During this time, we recommend verifying event signatures using both the old and new secrets. You cannot rotate a secret again while a previous rotation's grace period is still active. Wait until the time specified in `previousSecretExpiresAt` before rotating again. ## API Specification Rotates the signing secret for a destination. The previous secret remains valid for the period specified by `previousSecretExpiryHours` (or `0` for immediate invalidation) to allow for a graceful transition. **Endpoint:** `POST /destinations/{destinationId}/secret/rotate` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`destinationId`** (path) (required): The unique identifier for the destination. You can retrieve destination IDs with the [List Destinations](https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-list-destinations) endpoint. - Type: `string` - **`Idempotency-Key`** (header): A unique string to identify this request to the server. If not set, Stedi generates one automatically. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents duplicate operations due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `RotateEventDestinationSecretRequestContent` **Properties:** - **`previousSecretExpiryHours`** (`number`): The number of hours you want the previous secret to remain valid after rotation. - Default is 24 hours. - Set to `0` when you want the previous secret to expire immediately — in-flight payloads signed with the previous secret fail verification. - You can't rotate again until this grace period expires. **Example:** ```json { "previousSecretExpiryHours": 24 } ``` ### Responses #### 200 RotateEventDestinationSecret 200 response **Schema:** `RotateEventDestinationSecretResponseContent` **Properties:** - **`previousSecretExpiresAt`** (`string`): Expiration timestamp for the secret this rotation replaced. Equals the rotation time when you set `previousSecretExpiryHours` to `0`. You can't rotate again until this timestamp passes. - **`signingSecret`** (`string`) (required): The new signing secret for verifying event payloads. Visit [verify event signatures](https://www.stedi.com/docs/healthcare/event-destinations-message-handling#verify-authenticity-and-receipt-time) for details. **Example:** ```json { "previousSecretExpiresAt": "2025-01-01T00:00:00Z", "signingSecret": "whsec_bmV3c2VjcmV0Zm9ycm90YXRpb25leGFtcGxlMTIzNA==" } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 404 NotFoundException 404 response **Schema:** `NotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # Update Event Destination Source: https://www.stedi.com/docs/healthcare/api-reference/post-event-destinations-update-destination This endpoint updates an existing event destination's configuration. You can modify the destination name, URL, subscribed event types, description, or status. You can use this endpoint to enable or disable a destination (`status`) without deleting it. This is useful when you need to pause event delivery to a destination during maintenance or troubleshooting. 1. Call this endpoint with the destination's ID and the properties you want to update. 2. Stedi updates the destination. 3. The endpoint returns the updated configuration. ## API Specification Updates an existing destination configuration. **Endpoint:** `POST /destinations/{destinationId}` **Base URL:** `https://events.us.stedi.com/2026-02-01` ### Parameters - **`destinationId`** (path) (required): The unique identifier for the destination. You can retrieve destination IDs with the [List Destinations](https://www.stedi.com/docs/healthcare/api-reference/get-event-destinations-list-destinations) endpoint. - Type: `string` - **`Idempotency-Key`** (header): A unique string to identify this request to the server. If not set, Stedi generates one automatically. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents duplicate operations due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `UpdateEventDestinationRequestContent` **Properties:** - **`concurrencyLimit`** (`number`): Maximum concurrent deliveries for this destination. If not set, Stedi applies your account default (typically 5). Stedi rejects requests exceeding your account maximum (typically 20) with a `400` error. Contact Stedi to change your limits. - **`description`** (`string`): A description of the destination's purpose, such as "Receives transaction enrollment task notifications." - **`destinationUrl`** (`string`): The URL where you want Stedi to deliver payloads through HTTP `POST`. - **`eventTypes`** (`array of strings`): The event types you want Stedi to send to this destination. Visit [event types](https://www.stedi.com/docs/healthcare/event-destinations-event-types) for a complete list. - **`name`** (`string`): A human-readable name for the destination. Stedi displays this name in the portal. - **`status`** (`string`): The desired status of a destination, as set by the user. - Allowed values: `ENABLED`, `DISABLED` **Example:** ```json { "name": "Updated Destination Name", "status": "DISABLED" } ``` ### Responses #### 200 UpdateEventDestination 200 response **Schema:** `UpdateEventDestinationResponseContent` **Properties:** - **`concurrencyLimit`** (`number`): The maximum number of concurrent deliveries for this destination. Contact Stedi to change your account limits. - **`createdAt`** (`string`) (required): Creation timestamp for this destination. - **`description`** (`string`) (required): A description of the destination's purpose, such as "Receives transaction enrollment task notifications." - **`destinationUrl`** (`string`) (required): The URL where Stedi delivers payloads through HTTP `POST`. - **`eventTypes`** (`array of strings`) (required): The event types Stedi sends to this destination. Visit [event types](https://www.stedi.com/docs/healthcare/event-destinations-event-types) for a complete list. - **`id`** (`string`) (required): The unique identifier for the destination. - **`lastDeliveryTime`** (`string`): The timestamp for Stedi's most recent delivery attempt to this destination. Absent when Stedi hasn't yet attempted a delivery. - **`name`** (`string`) (required): A human-readable name for the destination. Stedi displays this name in the portal. - **`status`** (`string`) (required): The destination's current status. Stedi only sends event payloads to `ENABLED` destinations. - Allowed values: `ENABLED`, `DISABLED` - **`updatedAt`** (`string`) (required): Last update timestamp for this destination. **Example:** ```json { "createdAt": "2026-02-01T12:00:00Z", "description": "", "destinationUrl": "https://example.com/webhooks", "eventTypes": [ "enrollment.activated" ], "id": "dst_550e8400-e29b-41d4-a716-446655440000", "name": "Updated Destination Name", "status": "DISABLED", "updatedAt": "2026-02-02T08:30:00Z" } ``` #### 400 InvalidRequestException 400 response **Schema:** `InvalidRequestExceptionResponseContent` **Properties:** - **`errors`** (`array of ValidationFailure objects`): Each part of the request that was rejected. Absent when the failure is not specific to any part. - **`errors[].message`** (`string`) (required): What was wrong with this part of the request - **`errors[].path`** (`string`): A JSON pointer to the part of the request that failed validation - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ForbiddenException 403 response **Schema:** `ForbiddenExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 404 NotFoundException 404 response **Schema:** `NotFoundExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 413 ContentTooLargeException 413 response **Schema:** `ContentTooLargeExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalServerException 500 response **Schema:** `InternalServerExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. # Batch Eligibility Check (270) Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-batch-eligibility You may want to periodically conduct asynchronous [batch eligibility checks](/healthcare/batch-refresh-eligibility-checks) for your entire patient population or a subset of patients, such as those who have active care plans or who have future services scheduled. These data refreshes allow you to proactively reach out to patients when they lose or change coverage. - Call this endpoint with a JSON payload containing one or more eligibility checks. You can submit up to 10,000 individual eligibility checks within a single batch, and you can submit as many batches as you need to process. Use the optional `maxRetryHours` property to configure the automatic retry period for checks that fail due to payer connectivity issues. - The endpoint returns a synchronous response containing a `batchId` that you can use to retrieve the results of these checks later, using the [Poll Batch Eligibility Checks](/healthcare/api-reference/get-healthcare-polling-eligibility) endpoint. - Stedi translates each eligibility check included in the request to the X12 270 EDI format and sends it to the appropriate payer. ## Start with real-time checks [#start-with-real-time-checks] Batch checks have a longer feedback cycle than real-time checks because you don't receive the payer's response immediately. That's why we strongly recommend starting with real-time checks when integrating with a new payer or working with eligibility checks for the first time. To perform synchronous eligibility checks, use the [Real-Time Eligibility Check](/healthcare/api-reference/post-healthcare-eligibility-legacy) endpoint. ## API Specification Submit multiple eligibility checks for Stedi to process asynchronously **Endpoint:** `POST /eligibility-manager/batch-eligibility` **Base URL:** `https://manager.us.stedi.com/2024-04-01` ### Parameters - **`X-Forwarded-For`** (header): - Type: `string` ### Request Body **Schema:** `BatchEligibilityChecksRequestContent` **Properties:** - **`items`** (`array of BatchEligibilityChecksItem objects`) (required): Each entry in this array represents a single eligibility check. You can submit up to 10,000 eligibility checks in a single request. **Warning:** If _any_ of the individual checks contain invalid JSON data, such as missing required properties or invalid values, Stedi rejects the entire batch with a `400` status code and returns errors to help you correct the issues. - **`items[].controlNumber`** (`string`): Stedi generates a control number for each eligibility check, so you don’t need to include this property in your request. - **`items[].dependents`** (`array of RequestDependent objects`): A dependent for which you want to retrieve benefits information. - You can only submit one dependent per eligibility check. - Only include the patient's information here when they are listed as a dependent on the subscriber's insurance plan AND the payer cannot uniquely identify them through information outside the subscriber's policy. For example, if the dependent has their own member ID number, you should identify them in the `subscriber` object instead. This includes member IDs that differ only by a suffix, such as `01`, because the patient can still be uniquely identified. - Most Medicaid plans don't support dependents, with a [few exceptions](https://www.stedi.com/docs/healthcare/send-eligibility-checks#medicaid-dependents). Sending this array to payers that don't support dependents will either cause an error, or the payer may ignore the information and return results for the subscriber instead. - Each payer has different requirements, so you should supply the fields necessary for each payer to identify the dependent in their system. However, we **strongly recommend** including the dependent's date of birth in the request when available because many payers return errors without it. - Enter the patient's name exactly as written on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Visit [patient names](https://www.stedi.com/docs/healthcare/send-eligibility-checks#patient-names) for all best practices to avoid unnecessary failures. - **`items[].dependents[].additionalIdentification`** (`object`): Use this object when you need to provide an additional identification number for the dependent. This is rarely required for standard eligibility checks. - **`items[].dependents[].additionalIdentification.agencyClaimNumber`** (`string`): The Property and Casualty Claim Number associated with the patient. You should only submit this value when when you are submitting an eligibility request to a property and casualty payer. - **`items[].dependents[].additionalIdentification.contractNumber`** (`string`): The contract number for an existing contract between the payer and the provider requesting the eligibility check. - **`items[].dependents[].additionalIdentification.healthInsuranceClaimNumber`** (`string`): This property is never used in practice. - **`items[].dependents[].additionalIdentification.identificationCardSerialNumber`** (`string`): The identification card serial number. You can include this when the ID card has a number in addition to the member ID number. The Identification Card Serial Number uniquely identifies the card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].dependents[].additionalIdentification.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].dependents[].additionalIdentification.medicalRecordIdentificationNumber`** (`string`): The medical record identification number. - **`items[].dependents[].additionalIdentification.memberIdentificationNumber`** (`string`): Not intended for most use cases. Only set this when the property and casualty patient identifier is a member ID that would be used in an 837 claim submission. If the patient has their own member ID for the health plan, you should identify them in the `subscriber` object. If the patient doesn't have their own member ID, don't set this property. - **`items[].dependents[].additionalIdentification.patientAccountNumber`** (`string`): The patient account number. - **`items[].dependents[].additionalIdentification.planNetworkIdentificationNumber`** (`string`): The plan network identification number. - **`items[].dependents[].additionalIdentification.planNumber`** (`string`): The insurance plan number. - **`items[].dependents[].additionalIdentification.policyNumber`** (`string`): The insurance group or policy number. - **`items[].dependents[].address`** (`object`): Address information for the dependent. When providing address information, we recommend including `state` for member identification in addition to the required `address1` and `city` properties. - **`items[].dependents[].address.address1`** (`string`) (required): The first line of the address. - **`items[].dependents[].address.address2`** (`string`): The second line of the address. - **`items[].dependents[].address.city`** (`string`) (required): The city. - **`items[].dependents[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependents[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependents[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependents[].address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependents[].beginningCardIssueDate`** (`string`): The date the insurance card was issued. Use when you need to specify a date range. Provide the end of the range in the `endCardIssueDate` property. - **`items[].dependents[].beginningPlanIssueDate`** (`string`): The date the insurance plan begins. Use when you need to specify a date range. Provide the end of the range in the `endPlanIssueDate` property. - **`items[].dependents[].birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Use to indicate the birth order when there are multiple births associated with the provided birth date. - **`items[].dependents[].dateOfBirth`** (`string`): The dependent's date of birth (DOB). We **strongly recommend** including the DOB in your request. Many payers need this information to identify the patient in their system and immediately return an error when it's not provided. - **`items[].dependents[].eligibilityCategory`** (`string`): The eligibility category for the dependent. - **`items[].dependents[].endCardIssueDate`** (`string`): The date the insurance card expires. Use when you need to specify a date range. Provide the start of the range in the `beginningCardIssueDate` property. - **`items[].dependents[].endPlanIssueDate`** (`string`): The date the insurance plan ends. Use when you need to specify a date range. Provide the start of the range in the `beginningPlanIssueDate` property. - **`items[].dependents[].firstName`** (`string`): The dependent's first name. - **`items[].dependents[].gender`** (`string`) - Allowed values: `M`, `F` - **`items[].dependents[].groupNumber`** (`string`): The group number for the dependent's insurance plan. - **`items[].dependents[].healthCareCodeInformation`** (`array of HealthCareInformation objects`): Information about the dependent's health care diagnosis. You can include up to eight entries in this array. The first array entry must have `diagnosisTypeCode` set to `ABK`. All subsequent entries must have `diagnosisTypeCode` set to `ABF`. - **`items[].dependents[].healthCareCodeInformation[].diagnosisCode`** (`string`) (required): The diagnosis code. Omit the decimal points in diagnosis codes - the decimal point is assumed. - **`items[].dependents[].healthCareCodeInformation[].diagnosisTypeCode`** (`string`) (required): The type of diagnosis code you are providing. You can set to `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis, `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis, `BF`- International Classification of Diseases Clinical Modification (ICD-9-CM) Diagnosis, or `ABF`- International Classification of Diseases Clinical Modification (ICD-10-CM) Diagnosis. Note that ICD-9 codes are **deprecated** and should no longer be used in eligibility checks. - Allowed values: `BK`, `ABK`, `BF`, `ABF` - **`items[].dependents[].idCard`** (`string`): The dependent's insurance card number. - **`items[].dependents[].idCardIssueDate`** (`string`): The date the insurance card was issued. Use to specify a single date. - **`items[].dependents[].individualRelationshipCode`** (`string`): The dependent's relationship to the subscriber. You can set this to `01` - Spouse, `19` - Child, `34` - Other Adult. - Allowed values: `01`, `19`, `34` - **`items[].dependents[].issueNumber`** (`string`): The issue number for the dependent's insurance policy. - **`items[].dependents[].lastName`** (`string`): The dependent's last name. **Don't** include the dependent's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`items[].dependents[].memberId`** (`string`): This shape is deprecated: This property is no longer used. - **`items[].dependents[].middleName`** (`string`): The dependent's middle name or middle initial. - **`items[].dependents[].planIssueDate`** (`string`): The date the insurance plan begins. Use to specify a single date. - **`items[].dependents[].providerCode`** (`string`): Use this for providers that are not requesting the eligibility check - the requestor is specified in the `provider` object. For example, if you are a hospital making an eligibility request, this is where you would specify information about a referring provider's role. You can use one of the following: `AD` - Admitting, `AT` - Attending, `BI` - Billing, `CO` - Consulting, `CV` - Covering, `H` - Hospital, `HH` - Home Health Care, `LA` - Laboratory, `OT` - Other Physician, `P1` - Pharmacist, `P2` - Pharmacy, `PC` - Primary Care Physician, `PE`- Performing, `R`- Rural Health Clinic, `RF` - Referring, `SB` - Submitting, `SK` - Skilled Nursing Facility, `SU` - Supervising - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SK`, `SU` - **`items[].dependents[].providerIdentifier`** (`string`): The provider identifier you specified in the `referenceIdentificationQualifier` property. For example, the provider's National Provider ID or Federal Taxpayer Identification number. If you set the `referenceIdentificationQualifier` to `PXC`, then this property should contain the provider's taxonomy code. - **`items[].dependents[].referenceIdentificationQualifier`** (`string`): The type of `providerIdentifier` you are using. Use for providers that are not requesting the eligibility check, such as the referring provider. - Set to `HPI` when the National Provider ID is mandated for use. - Set to `PXC` if you're identifying a type of specialty associated with services provided to the dependent. Otherwise, you can set to the following: `9K` - Servicer, `D3` - National Council for Prescription Drug Programs Pharmacy Number, `EI` - Employer's Identification Number, `HPI` - Centers for Medicare and Medicaid Services National Provider Identifier, `PXC` - Health Care Provider Taxonomy Code, `SY` - Social Security Number, `TJ` - Federal Taxpayer's Identification Number - Allowed values: `9K`, `D3`, `EI`, `HPI`, `PXC`, `SY`, `TJ` - **`items[].dependents[].ssn`** (`string`): The dependent's social security number. Don't use this for Federally-administered programs, such as Medicare. - **`items[].dependents[].suffix`** (`string`): The dependent's name suffix, such as Sr. or III. Only include the dependent's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`items[].eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`items[].encounter`** (`object`): Details about the eligibility or benefit information you are requesting for the patient. - If you don't specify either `serviceTypeCodes` or a `procedureCode` and `productOrServiceIDQualifier`, Stedi defaults to using `30` (Plan coverage and general benefits) as the only `serviceTypeCodes` value. - You can specify either a single `dateOfService` or a `beginningDateOfService` and `endDateOfService`. The payer defaults to using the current date in their timezone if you don't include one. - When checking eligibility for today, omit the `dateOfService` property to ensure consistent behavior across payers. - We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers such as the Centers for Medicare and Medicaid Services (CMS) do support requests for dates further in the future - especially the next calendar month. Check the payer's documentation to determine their specific behavior. - **`items[].encounter.beginningDateOfService`** (`string`): The beginning date of service. If you include this value, you must also include the `endDateOfService`. - **`items[].encounter.dateOfService`** (`string`): The date of service. You can use this value to specify a single occasion, such as a doctor's visit. If you don't specify a service date (either a single day or a range of dates), the payer defaults to using the current date in their timezone. - **`items[].encounter.diagnosisCodePointer`** (`array of strings`): Diagnosis code pointers in order of importance to the service. These pointers are an index to the ICD-10 codes you included in the `subscriber.healthCareCodeInformation` or `dependents.healthCareCodeInformation` object arrays. The pointer values can be from 1 - 8 (integer numbers). If you are including diagnosis codes, you **must** set at least one pointer here for the primary diagnosis. Then, you can add up to three additional pointers (up to four in total). Don't put ICD-10 codes here. - **`items[].encounter.endDateOfService`** (`string`): The end date of service. If you include this value, you must also include the `beginningDateOfService`. - **`items[].encounter.industryCode`** (`string`): The type of facility where the service was provided. You can set this to one of the [place of service codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets). - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `71`, `72`, `81`, `99` - **`items[].encounter.medicalProcedures`** (`array of MedicalProcedure objects`): Use only when you need to send multiple procedure codes in a single request. Otherwise, use the `encounter.procedureCode` and `encounter.productOrServiceIDQualifier` properties. - **`items[].encounter.medicalProcedures[].diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].encounter.medicalProcedures[].procedureCode`** (`string`) (required): The procedure code. - **`items[].encounter.medicalProcedures[].procedureModifiers`** (`array of strings`): Procedure modifiers that provide additional information related to the service. - **`items[].encounter.medicalProcedures[].productOrServiceIDQualifier`** (`string`) (required): Code identifying the type/source of the `procedureCode`. You can set this to `AD` - American Dental Association Codes, `CJ` - Current Procedural Terminology (CPT) Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases, 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined. - Allowed values: `AD`, `CJ`, `HC`, `ID`, `IV`, `N4`, `ZZ` - **`items[].encounter.priorAuthorizationOrReferralNumber`** (`string`): The prior authorization or referral number for a particular benefit or procedure. - **`items[].encounter.procedureCode`** (`string`): The procedure code. - **`items[].encounter.procedureModifiers`** (`array of strings`): The procedure modifier that provides additional information related to the performance of the service. - **`items[].encounter.productOrServiceIDQualifier`** (`string`): Code identifying the type/source of the `procedureCode`. You can set this to `AD` - American Dental Association Codes, `CJ` - Current Procedural Terminology (CPT) Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases, 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined. - Allowed values: `AD`, `CJ`, `HC`, `ID`, `IV`, `N4`, `ZZ` - **`items[].encounter.referenceIdentificationQualifier`** (`string`): The type of information you provided in the `priorAuthorizationOrReferralNumber` property. You can set this to `9F` - Referral Number or `G1` - Prior Authorization Number. - Allowed values: `9F`, `G1` - **`items[].encounter.serviceTypeCodes`** (`array of strings`): One or more codes classifying the type of services for which you want to receive benefits information. If you don't specify a service type code or a `procedureCode` and `productOrServiceIDQualifier`, Stedi defaults to using `30` - Health Benefit Plan Coverage. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes#full-stc-list) for a complete list. Not all payers support all service type codes, and not all payers support multiple service type codes in the same request. We recommend including one service type code per request unless you're sure the payer supports multiple. Payers aren't required to respond with exactly the same STC(s) in the response, so you may receive benefits information for STCs you didn't request. However, receiving different STCs can mean that the payer is ignoring the STC you sent, which is why we recommend [testing payers](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes#test-payer-stc-support) to determine their support for specific STCs. - **`items[].externalPatientId`** (`string`): A unique identifier for the patient that Stedi uses to identify and correlate historical eligibility checks for the same individual. We recommend including this value in all requests. - **`items[].informationReceiverName`** (`object`) - **`items[].informationReceiverName.address`** (`object`): Address information for the provider. - Only include when specifically instructed by a payer, such as when the provider has multiple locations and you need to identify the specific location making the request. - You must include at least the `address1` and `city` properties. - **`items[].informationReceiverName.address.address1`** (`string`) (required): The first line of the address. - **`items[].informationReceiverName.address.address2`** (`string`): The second line of the address. - **`items[].informationReceiverName.address.city`** (`string`) (required): The city. - **`items[].informationReceiverName.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].informationReceiverName.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].informationReceiverName.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].informationReceiverName.address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].informationReceiverName.contactNumber`** (`string`) - **`items[].informationReceiverName.contractNumber`** (`string`) - **`items[].informationReceiverName.devicePinNumber`** (`string`) - **`items[].informationReceiverName.facilityIdNumber`** (`string`) - **`items[].informationReceiverName.facilityNetworkIdNumber`** (`string`) - **`items[].informationReceiverName.federalTaxpayerIdentificationNumber`** (`string`) - **`items[].informationReceiverName.informationReceiverAdditionalIdentifierState`** (`string`) - **`items[].informationReceiverName.medicaidProviderNumber`** (`string`): The provider's Medicaid provider number. - **`items[].informationReceiverName.medicareProviderNumber`** (`string`) - **`items[].informationReceiverName.nationalProviderIdentifier`** (`string`) - **`items[].informationReceiverName.priorIdentifierNumber`** (`string`) - **`items[].informationReceiverName.providerPlanNetworkIdNumber`** (`string`) - **`items[].informationReceiverName.socialSecurityNumber`** (`string`) - **`items[].informationReceiverName.stateLicenceNumber`** (`string`) - **`items[].informationReceiverName.submitterIdNumber`** (`string`) - **`items[].portalPassword`** (`string`): The password that the provider uses to log in to the payer's portal. For payers Medicaid California, AltaMed, and Kern Family Health Care, this property is **required** and should be the [provider's PIN](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#portal-credentials). Otherwise, this is not commonly used. - **`items[].portalUsername`** (`string`): The username that the provider uses to log in to the payer's portal. This is not commonly used. - **`items[].provider`** (`object`) (required): Information about the entity requesting the eligibility check. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. - You must provide the `organizationName` (if the entity is an organization), or `firstName` and `lastName` (if the provider is an individual). - You must also provide an identifier - this is typically the provider's [National Provider Identifier](https://www.stedi.com/docs/healthcare/national-provider-identifier) (`npi`). If the provider doesn't have an NPI, you can supply an alternative, such as their `taxId` or `ssn`. - Don't include additional properties, such as `taxId` or `address`, unless they are specifically required or suggested by the payer. - **`items[].provider.address`** (`object`): Address information for the provider. - Only include when specifically instructed by a payer, such as when the provider has multiple locations and you need to identify the specific location making the request. - You must include at least the `address1` and `city` properties. - **`items[].provider.address.address1`** (`string`) (required): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`) (required): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.contactNumber`** (`string`): The provider's contract number. Only include when required by a payer. This shape is deprecated: Use `contractNumber` instead. - **`items[].provider.contractNumber`** (`string`): The provider's contract number. Only include when required by a payer. - **`items[].provider.devicePinNumber`** (`string`): The provider's electronic device pin number. Only include when required by a payer. - **`items[].provider.employersId`** (`string`): Deprecated; The submitter's Employer's Identification Number (EIN). Only use when an employer is checking the eligibility and benefits of their employees. This shape is deprecated: This property is no longer used. - **`items[].provider.facilityIdNumber`** (`string`): The ID number for the provider's facility. Only include when required by a payer. - **`items[].provider.facilityNetworkIdNumber`** (`string`): The provider's facility network identification number. Only include when required by a payer. - **`items[].provider.firstName`** (`string`): The provider's first name. Use when the provider is an individual. - **`items[].provider.informationReceiverAdditionalIdentifierState`** (`string`): The two-character state ID of the state that assigned the `stateLicenseNumber`. Only include when required by a payer. - **`items[].provider.lastName`** (`string`): The provider's last name. Use when the provider is an individual. - **`items[].provider.medicaidProviderNumber`** (`string`): The provider's Medicaid provider number. Only include when required by a payer. - **`items[].provider.medicareProviderNumber`** (`string`): The provider's Medicare provider number. Only include when required by a payer. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). This identifier is required for all healthcare providers who are eligible to receive an NPI. Some non-traditional providers such as transportation services, durable medical equipment (DME) suppliers, or alternative medicine practitioners are not eligible to receive an NPI. If the provider doesn't have an NPI, requests with alternate IDs are virtually never supported. In the rare circumstance that a payer has instructed you to use an alternate ID, the payer will typically require you to supply either their `taxId` or `ssn` instead. - **`items[].provider.organizationName`** (`string`): The provider's business name. Use when the provider isn't an individual. - **`items[].provider.payorId`** (`string`): Only used for payer-to-payer transactions, which are not currently supported. Do not use. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The provider's pharmacy processor number. Only include when specifically instructed by a payer - for example, when the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - **`items[].provider.priorIdentifierNumber`** (`string`): The provider's prior identifier number. Only include when required by a payer. - **`items[].provider.providerCode`** (`string`) - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerPlanNetworkIdNumber`** (`string`): The provider's plan network identification number. Only include when required by a payer. - **`items[].provider.providerType`** (`string`): Identify the type of provider. - Allowed values: `payer`, `third-party administrator`, `employer`, `hospital`, `facility`, `gateway provider`, `plan sponsor`, `provider` - **`items[].provider.referenceIdentification`** (`string`): The provider's [Taxonomy Code](https://x12.org/codes/provider-taxonomy-codes). Only used when the provider's taxonomy code is relevant to the eligibility/benefit inquiry. For example, an institutional provider such as a hospital may need to use a taxonomy code to specify a specific unit or department. - **`items[].provider.serviceProviderNumber`** (`string`): The provider's service provider number. Only include when specifically instructed by a payer - for example, when the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - **`items[].provider.servicesPlanID`** (`string`) - **`items[].provider.ssn`** (`string`): The provider's Social Security Number (SSN). - Only include when specifically instructed by a payer - for example, if the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - If the payer has instructed you to send an EIN but the provider operates using their SSN, use provider.taxId instead of this field. - Don't use this for Federally-administered programs, such as Medicare. - **`items[].provider.stateLicenceNumber`** (`string`): The provider's state license number. If you include this information, you must also include the `informationReceiverAdditionalIdentifierState`. Only include when required by a payer. - **`items[].provider.submitterIdNumber`** (`string`): The provider's submitter identification number. Only include when required by a payer. - **`items[].provider.taxId`** (`string`): The provider's Federal Taxpayer Identification Number. This is typically the provider's EIN (Employer Identification Number), but the provider's SSN may be used if the provider does not have an EIN. Only include if required by the payer. - **`items[].submitterTransactionIdentifier`** (`string`) (required): A unique identifier for the eligibility check within this batch request. Stedi returns this identifier in the response for the [Poll Batch Eligibility Checks](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-polling-eligibility) endpoint. - **`items[].subscriber`** (`object`) (required): The primary policyholder for the insurance plan _or_ a dependent with a unique member ID. If a dependent has a unique member ID, include their information here and leave `dependents` empty. - At a minimum, our API requires that you supply at least one of these fields in the request: `memberId`, `dateOfBirth`, or `lastName`. However, each payer has different requirements, so you should supply the fields necessary for each payer to identify the subscriber in their system. - When you provide all four of `memberId`, `dateOfBirth`, `firstName`, and `lastName`, payers are required to return a response if the member is in their database. Some payers may be able to search with less information, but this varies by payer. - We recommend always including the patient's member ID when possible. - Enter the patient's name exactly as written on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Visit [patient names](https://www.stedi.com/docs/healthcare/send-eligibility-checks#patient-names) for all best practices to avoid unnecessary failures. - **`items[].subscriber.additionalIdentification`** (`object`): Use this object when you need to provide an identification number other than or in addition to the subscriber's member ID. For example, you may provide the patient account number. Don't include the health insurance claim number or the medicaid recipient ID number here unless they are different from the member ID. - **`items[].subscriber.additionalIdentification.agencyClaimNumber`** (`string`): The Property and Casualty Claim Number associated with the patient. You should only submit this value when when you are submitting an eligibility request to a property and casualty payer. - **`items[].subscriber.additionalIdentification.contractNumber`** (`string`): The contract number for an existing contract between the payer and the provider requesting the eligibility check. - **`items[].subscriber.additionalIdentification.healthInsuranceClaimNumber`** (`string`): The health insurance claim number. - **`items[].subscriber.additionalIdentification.identificationCardSerialNumber`** (`string`): The identification card serial number. You can include this when the ID card has a number in addition to the member ID number. The Identification Card Serial Number uniquely identifies the card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].subscriber.additionalIdentification.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].subscriber.additionalIdentification.medicalRecordIdentificationNumber`** (`string`): The medical record identification number. - **`items[].subscriber.additionalIdentification.memberIdentificationNumber`** (`string`): This property is never used in practice. Supply the subscriber's member ID in `subscriber.memberId`. - **`items[].subscriber.additionalIdentification.patientAccountNumber`** (`string`): The patient account number. - **`items[].subscriber.additionalIdentification.planNetworkIdentificationNumber`** (`string`): The plan network identification number. - **`items[].subscriber.additionalIdentification.planNumber`** (`string`): The insurance plan number. - **`items[].subscriber.additionalIdentification.policyNumber`** (`string`): The insurance group or policy number. - **`items[].subscriber.address`** (`object`): Address information for the subscriber. When providing address information: - The `address1` and `city` properties are **required** for standard eligibility checks and MBI lookups with SSN. We also recommend including `state` for member identification. - When performing an [MBI lookup without SSN](https://www.stedi.com/docs/healthcare/mbi-lookup) (Payer ID: `MBILUNOSSN`), only `state` is required. You can omit `address1` and `city`. - **`items[].subscriber.address.address1`** (`string`): The first line of the address. Required for all payers except payer ID `MBILUNOSSN`. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. Required for all payers except payer ID `MBILUNOSSN`. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.beginningCardIssueDate`** (`string`): The date the subscriber's insurance card was issued. Use when you need to specify a date range. Provide the end of the range in the `endCardIssueDate` property. - **`items[].subscriber.beginningPlanIssueDate`** (`string`): The date the subscriber's insurance plan begins. Use when you need to specify a date range. Provide the end of the range in the `endPlanIssueDate` property. - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Use to indicate the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.caseNumber`** (`string`): The case number associated with the subscriber. - **`items[].subscriber.coverageLevelCode`** (`string`): This property is no longer used. - **`items[].subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`items[].subscriber.endCardIssueDate`** (`string`): The date the subscriber's insurance card expires. Use when you need to specify a date range. Provide the start of the range in the `beginningCardIssueDate` property. - **`items[].subscriber.endPlanIssueDate`** (`string`): The date the subscriber's insurance plan ends. Use when you need to specify a date range. Provide the start of the range in the `beginningPlanIssueDate` property. - **`items[].subscriber.firstName`** (`string`): The patient's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F` - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`items[].subscriber.healthCareCodeInformation`** (`array of HealthCareInformation objects`): Information about the subscriber's health care diagnosis. You can include up to eight entries in this array. The first array entry must have `diagnosisTypeCode` set to `ABK`. All subsequent entries must have `diagnosisTypeCode` set to `ABF`. - **`items[].subscriber.healthCareCodeInformation[].diagnosisCode`** (`string`) (required): The diagnosis code. Omit the decimal points in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareCodeInformation[].diagnosisTypeCode`** (`string`) (required): The type of diagnosis code you are providing. You can set to `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis, `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis, `BF`- International Classification of Diseases Clinical Modification (ICD-9-CM) Diagnosis, or `ABF`- International Classification of Diseases Clinical Modification (ICD-10-CM) Diagnosis. Note that ICD-9 codes are **deprecated** and should no longer be used in eligibility checks. - Allowed values: `BK`, `ABK`, `BF`, `ABF` - **`items[].subscriber.idCard`** (`string`): The subscriber's identification card number. Include this property when this number is different than the subscriber's member ID. This is common in Medicaid. - **`items[].subscriber.idCardIssueDate`** (`string`): The date the subscriber's insurance card was issued. Use to specify a single date. - **`items[].subscriber.lastName`** (`string`): The subscriber's last name. **Don't** include the subscriber's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`items[].subscriber.medicaidRecipientIdentificationNumber`** (`string`): The Medicaid Recipient Identification Number. You can provide this number to identify the subscriber when it is the primary number the payer knows a member by (such as for Medicare or Medicaid). Do not supply this value unless it is different from the `memberId`. - **`items[].subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. - **`items[].subscriber.middleName`** (`string`): The patient's middle name or middle initial. - **`items[].subscriber.planIssueDate`** (`string`): The date the subscriber's insurance plan begins. Use to specify a single date. - **`items[].subscriber.providerCode`** (`string`): Use this for providers that are not requesting the eligibility check - the requestor is specified in the `provider` object. For example, if you are a hospital making an eligibility request, this is where you would specify information about a referring provider's role. This property is **required** when the `providerIdentifier` and `referenceIdentificationQualifier` properties are populated. You can use one of the following: `AD` - Admitting, `AT` - Attending, `BI` - Billing, `CO` - Consulting, `CV` - Covering, `H` - Hospital, `HH` - Home Health Care, `LA` - Laboratory, `OT` - Other Physician, `P1` - Pharmacist, `P2` - Pharmacy, `PC` - Primary Care Physician, `PE` - Performing, `R` - Rural Health Clinic, `RF` - Referring, `SB` - Submitting, `SK` - Skilled Nursing Facility, `SU` - Supervising - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SK`, `SU` - **`items[].subscriber.providerIdentifier`** (`string`): The provider identifier you specified in the `referenceIdentificationQualifier` property. It is **required** if you set the `referenceIdentificationQualifier`. For example, this property could contain the provider's National Provider ID or Federal Taxpayer Identification number. If you set the `referenceIdentificationQualifier` to `PXC`, then this property should contain the provider's taxonomy code. - **`items[].subscriber.referenceIdentificationQualifier`** (`string`): Use this for providers that are not requesting the eligibility check. This is the type of `providerIdentifier` you are providing. - Set to `HPI` when the National Provider ID is mandated for use. - Set to `PXC` if you're identifying a type of specialty associated with services provided to the subscriber. Otherwise, you can set to the following: `9K` - Servicer, `D3` - National Council for Prescription Drug Programs Pharmacy Number, `EI` - Employer's Identification Number, `HPI` - Centers for Medicare and Medicaid Services National Provider Identifier, `PXC` - Health Care Provider Taxonomy Code, `SY - Social Security Number, `TJ` - Federal Taxpayer's Identification Number - Allowed values: `9K`, `D3`, `EI`, `HPI`, `PXC`, `SY`, `TJ` - **`items[].subscriber.spendDownAmount`** (`string`): Identify the dollar amount the subscriber will apply toward their spend down amount, if required. For some Medicaid programs, individuals must pay a certain amount towards their healthcare cost (spend down) before coverage starts. - **`items[].subscriber.spendDownTotalBilledAmount`** (`string`): The subscriber's spend down total billed amount. - **`items[].subscriber.ssn`** (`string`): The subscriber's Social Security Number (SSN). Many commercial and government payers ignore this property due to concerns about member privacy. However, some Medicaid programs support alternative searches using the patient's Social Security Number, instead of the member ID. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`items[].tradingPartnerName`** (`string`): The payer's name, such as Cigna or Aetna. - **`items[].tradingPartnerServiceId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`maxRetryHours`** (`integer`): The maximum number of hours that Stedi will retry eligibility checks in this batch that fail due to [payer connectivity issues](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-connectivity-issues). Must be an integer between 8 and 24 hours. If not specified, the default is 8 hours. - **`name`** (`string`): The name that Stedi will use when displaying this batch on the [Eligibility check batches page](https://portal.stedi.com/app/healthcare/checks/batch). It must be unique within your Stedi account. If you don't specify a name, Stedi sets this property to the autogenerated `batchId` returned in the response. **Example:** ```json { "items": [ { "encounter": { "serviceTypeCodes": [ "MH" ] }, "provider": { "npi": "1234567891", "organizationName": "ACME Health Services" }, "submitterTransactionIdentifier": "ABC123456789", "subscriber": { "dateOfBirth": "19750101", "firstName": "Jane", "lastName": "Doe", "memberId": "1234567890" }, "tradingPartnerServiceId": "AHS" }, { "encounter": { "serviceTypeCodes": [ "78" ] }, "provider": { "npi": "1234567891", "organizationName": "ACME Health Services" }, "submitterTransactionIdentifier": "DEF123456799", "subscriber": { "dateOfBirth": "19750101", "firstName": "John", "lastName": "Doe", "memberId": "1234567892" }, "tradingPartnerServiceId": "AHS" } ], "name": "march-2024-eligibility-batch" } ``` ### Responses #### 200 BatchEligibilityChecks 200 response **Schema:** `BatchEligibilityChecksResponseContent` **Properties:** - **`batchId`** (`string`) (required): An identifier for this batch of eligibility checks. You can use this identifier to retrieve the results of this batch using the [Poll Batch Eligibility Checks](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-polling-eligibility) endpoint. - **`submittedAt`** (`string`) (required): The date and time that the batch of eligibility checks was submitted to Stedi for processing. **Example:** ```json { "batchId": "01928d19-df25-76c0-8d51-f5351260fa05", "submittedAt": "2023-11-07T05:31:56Z" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 401 UnauthorizedException 401 response **Schema:** `UnauthorizedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 409 ResourceConflictException 409 response **Schema:** `ResourceConflictExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 TooManyRequestsException 429 response **Schema:** `TooManyRequestsExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Real-Time Claim Status (276/277) Raw X12 Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-claim-status-raw-x12 You may need to submit a 276 real-time claim status request when you don't receive a 277CA or 835 ERA response from the payer within your expected timeframe. This endpoint is ideal if you have an existing system that generates X12 EDI files and you want to send them through Stedi. 1. Call this endpoint with a payload in [276 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/claim-status-request-x212/01GRYB6A4XEJQ61Y2K2KT606E5). - The request must be for a production claim that has entered the payer's processing system. Requests for test claims or claims that the payer hasn't yet accepted won't return results. - Providing too much information can negatively affect the results. You should start with our [recommended base request](/healthcare/check-claim-status#x12-base-request). 2. Stedi validates the EDI and sends the transaction to the payer. 3. The endpoint returns a synchronous 277 claim status response from the payer in JSON format. The response contains information about the claims matching the criteria you provided in the request and their current status. The response may contain information about more than one claim, if the payer has multiple claims on file that match the information you provided. ## API Specification Submit a 276/277 real-time claim status check in raw X12 EDI format **Endpoint:** `POST /change/medicalnetwork/claimstatus/v2/raw-x12` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Request Body **Schema:** `ClaimStatusRawX12RequestContent` **Properties:** - **`x12`** (`string`) (required) **Example:** ```json { "x12": "ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *250916*2048*^*00501*000000001*0*T*>~GS*HR*SENDERGS*RECEIVERGS*20250916*204811*1*X*005010X212~ST*276*0001*005010X212~BHT*0010*13*ABC276XXX*20250915*1425~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*123456789~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*0~DMG*D8*19710101~NM1*IL*1*DOE*JANE****MI*UHC123456~TRN*1*123456789~DTP*472*RD8*20250630-20250702~SE*14*0001~GE*1*1~IEA*1*000000001~" } ``` ### Responses #### 200 ClaimStatusRawX12 200 response **Schema:** `ClaimStatusRawX12ResponseContent` **Properties:** - **`claims`** (`array of Claim objects`): The status information for the claim referenced in the original claim status request. The payer may return multiple claims in the response if they have more than one claim on file that matches the information you provided. - **`claims[].claimStatus`** (`object`): The status, required action, and paid information of a claim or service line. - **`claims[].claimStatus.amountPaid`** (`string`): The total amount paid for the claim. May be zero when no payment is being made. Some payers can provide the adjudicated payment amount before they issue the remittance. - **`claims[].claimStatus.checkIssueDate`** (`string`): The date the payer issued the check for payment. This may also contain a non-payment remittance advice date, if available from the payer. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].claimStatus.checkNumber`** (`string`): The check identification number or electronic funds transfer (EFT) trace number. This number is used to track the payment. This may also contain a non-payment remittance advice Trace Number (835 or paper), if available from the payer. - **`claims[].claimStatus.claimServiceDate`** (`string`): Either a single date (formatted as `YYYYMMDD`) or a range of dates (formatted as `YYYYMMDD-YYYYMMDD`) identifying the period of service related to the claim. This property is derived from the service level dates. - **`claims[].claimStatus.clearingHouseClaimNumber`** (`string`): The claim number provided by the clearinghouse. - **`claims[].claimStatus.effectiveDate`** (`string`): The date the claim was placed in this status by the payer's adjudication process. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].claimStatus.entity`** (`string`): Entity descriptions corresponding to Entity Identifier codes. - Allowed values: `Health Maintenance Organization (HMO)`, `Oncology Center`, `Kidney Dialysis Unit`, `Preferred Provider Organization (PPO)`, `Acute Care Hospital`, `Provider`, `Military Facility`, `University, College or School`, `Outpatient Surgicenter`, `Physician, Clinic or Group Practice`, `Long Term Care Facility`, `Extended Care Facility`, `Psychiatric Health Facility`, `Laboratory`, `Retail Pharmacy`, `Home Health Care`, `Federal, State, County or City Facility`, `Third-Party Administrator`, `Miscellaneous Health Care Facility`, `Non-Health Care Miscellaneous Facility`, `Church Operated Facility`, `Partnership`, `Public Health Service Facility`, `Veterans Administration Facility`, `Public Health Service Indian Service Facility`, `Hospital Unit of an Institution (prison hospital, college infirmary, etc.)`, `Dependent`, `Hospital Unit Within an Institution for the Mentally Retarded`, `Tuberculosis and Other Respiratory Diseases Facility`, `Obstetrics and Gynecology Facility`, `Eye, Ear, Nose and Throat Facility`, `Rehabilitation Facility`, `Orthopedic Facility`, `Chronic Disease Facility`, `Other Specialty Facility`, `Children's General Facility`, `Children's Hospital Unit of an Institution`, `Children's Psychiatric Facility`, `Children's Tuberculosis and Other Respiratory Diseases Facility`, `Children's Eye, Ear, Nose and Throat Facility`, `Children's Rehabilitation Facility`, `Children's Orthopedic Facility`, `Children's Chronic Disease Facility`, `Children's Other Specialty Facility`, `Institution for Mental Retardation`, `Alcoholism and Other Chemical Dependency Facility`, `General Inpatient Care for AIDS/ARC Facility`, `AIDS/ARC Unit`, `Specialized Outpatient Program for AIDS/ARC`, `Alcohol/Drug Abuse or Dependency Inpatient Unit`, `Alcohol/Drug Abuse or Dependency Outpatient Services`, `Arthritis Treatment Center`, `Birthing Room/LDRP Room`, `Burn Care Unit`, `Cardiac Catherization Laboratory`, `Open-Heart Surgery Facility`, `Cardiac Intensive Care Unit`, `Angioplasty Facility`, `Chronic Obstructive Pulmonary Disease Service Facility`, `Emergency Department`, `Trauma Center (Certified)`, `Extracorporeal Shock-Wave Lithotripter (ESWL) Unit`, `Genetic Counseling/Screening Services`, `Adult Day Care Program Facility`, `Alzheimer's Diagnostic/Assessment Services`, `Comprehensive Geriatric Assessment Facility`, `Emergency Response (Geriatric) Unit`, `Geriatric Acute Care Unit`, `Geriatric Clinics`, `Respite Care Facility`, `Patient Education Unit`, `Community Health Promotion Facility`, `Worksite Health Promotion Facility`, `Hemodialysis Facility`, `Home Health Services`, `Hospice`, `Medical Surgical or Other Intensive Care Unit`, `Histopathology Laboratory`, `Blood Bank`, `Neonatal Intensive Care Unit`, `Obstetrics Unit`, `Occupational Health Services`, `Organized Outpatient Services`, `Pediatric Acute Inpatient Unit`, `Psychiatric Child/Adolescent Services`, `Psychiatric Consultation-Liaison Services`, `Psychiatric Education Services`, `Psychiatric Emergency Services`, `Psychiatric Geriatric Services`, `Psychiatric Inpatient Unit`, `Psychiatric Outpatient Services`, `Psychiatric Partial Hospitalization Program`, `Megavoltage Radiation Therapy Unit`, `Radioactive Implants Unit`, `Therapeutic Radioisotope Facility`, `X-Ray Radiation Therapy Unit`, `CT Scanner Unit`, `Diagnostic Radioisotope Facility`, `Magnetic Resonance Imaging (MRI) Facility`, `Ultrasound Unit`, `Rehabilitation Inpatient Unit`, `Rehabilitation Outpatient Services`, `Reproductive Health Services`, `Skilled Nursing or Other Long-Term Care Unit`, `Single Photon Emission Computerized Tomography (SPECT) Unit`, `Organized Social Work Service Facility`, `Outpatient Social Work Services`, `Emergency Department Social Work Services`, `Sports Medicine Clinic/Services`, `Hospital Auxiliary Unit`, `Patient Representative Services`, `Volunteer Services Department`, `Outpatient Surgery Services`, `Organ/Tissue Transplant Unit`, `Orthopedic Surgery Facility`, `Occupational Therapy Services`, `Physical Therapy Services`, `Recreational Therapy Services`, `Respiratory Therapy Services`, `Speech Therapy Services`, `Women's Health Center/Services`, `Cardiac Rehabilitation Program Facility`, `Non-Invasive Cardiac Assessment Services`, `Emergency Medical Technician`, `Disciplinary Contact`, `Case Manager`, `Place of Occurrence`, `Contracted Service Provider`, `Consultant's Office`, `Subcontractor`, `Service Supplier`, `Employer`, `Receiver`, `Claimant Authorized Representative`, `Data Processing Service Bureau`, `Performed At`, `Attending Physician`, `Operating Physician`, `Other Physician`, `Corrected Insured`, `Service Location`, `Hospital`, `Rendering Provider`, `Subscriber's Employer`, `Billing Provider`, `Pay-to Provider`, `Research Institute`, `Pharmacist`, `Admitting Surgeon`, `Commercial Insurer`, `Assistant Surgeon`, `Consulting Physician`, `Ordering Physician`, `Referring Provider`, `Dependent Name`, `Supervising Physician`, `Person or Other Entity Legally Responsible for a Child`, `Person or Other Entity With Whom a Child Resides`, `Previous Employer`, `Participating Laboratory`, `Facility`, `Physical Address`, `Mail Address`, `Dependent Insured`, `Clinic`, `Other Insured`, `Guardian`, `Paramedic`, `Paramedical Company`, `Previous Insured`, `Spouse Insured`, `Treatment Facility`, `Healthcare Professional Shortage Area (HPSA) Facility`, `Home Health Agency`, `Independent Physicians Association (IPA)`, `Injection Point`, `Insured or Subscriber`, `Insurer`, `Independent Lab`, `Legal Representative`, `Medical Insurance Carrier`, `Mammography Screening Center`, `Ordered By`, `Doctor of Optometry`, `Oxygen Therapy Facility`, `Patient Facility`, `Primary Insured or Subscriber`, `Primary Care Provider`, `Prior Insurance Carrier`, `Third Party Reviewing Preferred Provider Organization (PPO)`, `Third Party Repricing Preferred Provider Organization (PPO)`, `Primary Payer`, `Party to Receive Test Report`, `Party performing certification`, `Pickup Address`, `Pharmacy`, `Purchase Service Provider`, `Patient`, `Responsible Party`, `Policyholder`, `Physician`, `Managed Care`, `Chiropractor`, `Dentist`, `Doctor of Osteopathy`, `Podiatrist`, `Group Practice`, `Medical Doctor`, `Receiving Location`, `Rural Health Clinic`, `Skilled Nursing Facility`, `Secondary Payer`, `Service Provider`, `Supplier/Manufacturer`, `Transfer Point`, `Testing Laboratory`, `Third Party Reviewing Organization (TPO)`, `Transfer To`, `Tertiary Payer`, `Third Party Repricing Organization (TPO)`, `Nursing Home`, `Utilization Management Organization`, `Spouse`, `Durable Medical Equipment Supplier`, `Mutually Defined` - **`claims[].claimStatus.entityCode`** (`string`): Entity Identifier codes used to identify organizational entities, physical locations, properties, or individuals. - Allowed values: `1E`, `1G`, `1H`, `1I`, `1O`, `1P`, `1Q`, `1R`, `1S`, `1T`, `1U`, `1V`, `1W`, `1X`, `1Y`, `1Z`, `2A`, `2B`, `2D`, `2E`, `2I`, `2K`, `2P`, `2Q`, `2S`, `2Z`, `03`, `3A`, `3C`, `3D`, `3E`, `3F`, `3G`, `3H`, `3I`, `3J`, `3K`, `3L`, `3M`, `3N`, `3O`, `3P`, `3Q`, `3R`, `3S`, `3T`, `3U`, `3V`, `3W`, `3X`, `3Y`, `3Z`, `4A`, `4B`, `4C`, `4D`, `4E`, `4F`, `4G`, `4H`, `4I`, `4J`, `4L`, `4M`, `4N`, `4O`, `4P`, `4Q`, `4R`, `4S`, `4U`, `4V`, `4W`, `4X`, `4Y`, `4Z`, `5A`, `5B`, `5C`, `5D`, `5E`, `5F`, `5G`, `5H`, `5I`, `5J`, `5K`, `5L`, `5M`, `5N`, `5O`, `5P`, `5Q`, `5R`, `5S`, `5T`, `5U`, `5V`, `5W`, `5X`, `5Y`, `5Z`, `6A`, `6B`, `6C`, `6D`, `6E`, `6F`, `6G`, `6H`, `6I`, `6J`, `6K`, `6L`, `6M`, `6N`, `6O`, `6P`, `6Q`, `6R`, `6S`, `6U`, `6V`, `6W`, `6X`, `6Y`, `7C`, `13`, `17`, `28`, `30`, `36`, `40`, `43`, `44`, `61`, `71`, `72`, `73`, `74`, `77`, `80`, `82`, `84`, `85`, `87`, `95`, `CK`, `CZ`, `D2`, `DD`, `DJ`, `DK`, `DN`, `DO`, `DQ`, `E1`, `E2`, `E7`, `E9`, `FA`, `FD`, `FE`, `G0`, `G3`, `GB`, `GD`, `GI`, `GJ`, `GK`, `GM`, `GY`, `HF`, `HH`, `I3`, `IJ`, `IL`, `IN`, `LI`, `LR`, `MR`, `MSC`, `OB`, `OD`, `OX`, `P0`, `P2`, `P3`, `P4`, `P6`, `P7`, `PRP`, `PT`, `PV`, `PW`, `QA`, `QB`, `QC`, `QD`, `QE`, `QH`, `QK`, `QL`, `QN`, `QO`, `QS`, `QV`, `QY`, `RC`, `RW`, `S4`, `SEP`, `SJ`, `SU`, `T4`, `TL`, `TQ`, `TT`, `TTP`, `TU`, `UH`, `X3`, `X4`, `X5`, `ZZ` - **`claims[].claimStatus.paidDate`** (`string`): This is the date of denial or approval for the claim. This date may or may not be the same as the issue date of the check, EFT, or non-payment remittance. Some payers can provide this date before they issue the remittance. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].claimStatus.patientAccountNumber`** (`string`): The patient account number provided by the service provider in the original claim. You can use this value to correlate the claim status response to the original claim. - **`claims[].claimStatus.statusCategoryCode`** (`string`): The status category code. Visit [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) in the official X12 documentation for a complete list. - **`claims[].claimStatus.statusCategoryCodeValue`** (`string`): The description of the `statusCategoryCode`. - **`claims[].claimStatus.statusCode`** (`string`): The status code used to identify the status of an entire claim or a service line. For example, `20` - Accepted for Processing. This is either a Health Care Claim Status Code or a National Council for Prescription Drug Programs (NCPDP) Reject/Payment Code, when the status is related to pharmacy claims. Visit [Claim Status Codes](https://x12.org/codes/claim-status-codes) in the official X12 documentation or the [NCPDP website](https://ncpdp.org/) for a complete list of codes and their values. - **`claims[].claimStatus.statusCodeValue`** (`string`): The description of the `statusCode`. - **`claims[].claimStatus.submittedAmount`** (`string`): The total charges submitted for the claim. The total claim charge may change from the submitted claim total charge based on claims processing instructions, such as claim splitting. Some payers may not store the original submitted charge. Some HMO encounters supply zero as the amount of original charges. - **`claims[].claimStatus.trackingNumber`** (`string`): This is the trace or reference number of the original claim status request. - **`claims[].claimStatus.tradingPartnerClaimNumber`** (`string`): An identifier for the claim, assigned by the payer. - **`claims[].serviceDetails`** (`array of ServiceDetail objects`): Information about specific service lines and their status. Payers may not return service line details for all claims, even when you requested them. - **`claims[].serviceDetails[].service`** (`object`): Information about a service line listed in the referenced claim. - **`claims[].serviceDetails[].service.amountPaid`** (`string`): The amount paid for the service line, expressed as a decimal. For example, `100.00`. - **`claims[].serviceDetails[].service.procedureId`** (`string`): Identifying number for product or service. - **`claims[].serviceDetails[].service.procedureModifiers`** (`array of strings`): Procedure modifier codes that provide additional information about the service performed. - **`claims[].serviceDetails[].service.revenueCode`** (`string`): The National Uniform Billing Committee revenue code. - **`claims[].serviceDetails[].service.serviceIdQualifier`** (`string`): The definition of the `serviceIdQualifierCode`. For example, `American Dental Association Codes`. - **`claims[].serviceDetails[].service.serviceIdQualifierCode`** (`string`): A code identifying the type/source of the `procedureId`. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier) for a complete list. - Allowed values: `AD`, `ER`, `HC`, `HP`, `IV`, `N4`, `NU`, `WK` - **`claims[].serviceDetails[].service.submittedAmount`** (`string`): The amount submitted for the service line, expressed as a decimal. For example, `100.00`. This is the line item total on the current claim service status. - **`claims[].serviceDetails[].service.submittedUnits`** (`string`): The number of units of service submitted. - **`claims[].serviceDetails[].status`** (`array of Status objects`): Information about the status, required action, and paid information of a service line. - **`claims[].serviceDetails[].status[].effectiveDate`** (`string`): The date the service line was placed in this status by the payer's adjudication process. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].serviceDetails[].status[].entity`** (`string`): Entity descriptions corresponding to Entity Identifier codes. - Allowed values: `Health Maintenance Organization (HMO)`, `Oncology Center`, `Kidney Dialysis Unit`, `Preferred Provider Organization (PPO)`, `Acute Care Hospital`, `Provider`, `Military Facility`, `University, College or School`, `Outpatient Surgicenter`, `Physician, Clinic or Group Practice`, `Long Term Care Facility`, `Extended Care Facility`, `Psychiatric Health Facility`, `Laboratory`, `Retail Pharmacy`, `Home Health Care`, `Federal, State, County or City Facility`, `Third-Party Administrator`, `Miscellaneous Health Care Facility`, `Non-Health Care Miscellaneous Facility`, `Church Operated Facility`, `Partnership`, `Public Health Service Facility`, `Veterans Administration Facility`, `Public Health Service Indian Service Facility`, `Hospital Unit of an Institution (prison hospital, college infirmary, etc.)`, `Dependent`, `Hospital Unit Within an Institution for the Mentally Retarded`, `Tuberculosis and Other Respiratory Diseases Facility`, `Obstetrics and Gynecology Facility`, `Eye, Ear, Nose and Throat Facility`, `Rehabilitation Facility`, `Orthopedic Facility`, `Chronic Disease Facility`, `Other Specialty Facility`, `Children's General Facility`, `Children's Hospital Unit of an Institution`, `Children's Psychiatric Facility`, `Children's Tuberculosis and Other Respiratory Diseases Facility`, `Children's Eye, Ear, Nose and Throat Facility`, `Children's Rehabilitation Facility`, `Children's Orthopedic Facility`, `Children's Chronic Disease Facility`, `Children's Other Specialty Facility`, `Institution for Mental Retardation`, `Alcoholism and Other Chemical Dependency Facility`, `General Inpatient Care for AIDS/ARC Facility`, `AIDS/ARC Unit`, `Specialized Outpatient Program for AIDS/ARC`, `Alcohol/Drug Abuse or Dependency Inpatient Unit`, `Alcohol/Drug Abuse or Dependency Outpatient Services`, `Arthritis Treatment Center`, `Birthing Room/LDRP Room`, `Burn Care Unit`, `Cardiac Catherization Laboratory`, `Open-Heart Surgery Facility`, `Cardiac Intensive Care Unit`, `Angioplasty Facility`, `Chronic Obstructive Pulmonary Disease Service Facility`, `Emergency Department`, `Trauma Center (Certified)`, `Extracorporeal Shock-Wave Lithotripter (ESWL) Unit`, `Genetic Counseling/Screening Services`, `Adult Day Care Program Facility`, `Alzheimer's Diagnostic/Assessment Services`, `Comprehensive Geriatric Assessment Facility`, `Emergency Response (Geriatric) Unit`, `Geriatric Acute Care Unit`, `Geriatric Clinics`, `Respite Care Facility`, `Patient Education Unit`, `Community Health Promotion Facility`, `Worksite Health Promotion Facility`, `Hemodialysis Facility`, `Home Health Services`, `Hospice`, `Medical Surgical or Other Intensive Care Unit`, `Histopathology Laboratory`, `Blood Bank`, `Neonatal Intensive Care Unit`, `Obstetrics Unit`, `Occupational Health Services`, `Organized Outpatient Services`, `Pediatric Acute Inpatient Unit`, `Psychiatric Child/Adolescent Services`, `Psychiatric Consultation-Liaison Services`, `Psychiatric Education Services`, `Psychiatric Emergency Services`, `Psychiatric Geriatric Services`, `Psychiatric Inpatient Unit`, `Psychiatric Outpatient Services`, `Psychiatric Partial Hospitalization Program`, `Megavoltage Radiation Therapy Unit`, `Radioactive Implants Unit`, `Therapeutic Radioisotope Facility`, `X-Ray Radiation Therapy Unit`, `CT Scanner Unit`, `Diagnostic Radioisotope Facility`, `Magnetic Resonance Imaging (MRI) Facility`, `Ultrasound Unit`, `Rehabilitation Inpatient Unit`, `Rehabilitation Outpatient Services`, `Reproductive Health Services`, `Skilled Nursing or Other Long-Term Care Unit`, `Single Photon Emission Computerized Tomography (SPECT) Unit`, `Organized Social Work Service Facility`, `Outpatient Social Work Services`, `Emergency Department Social Work Services`, `Sports Medicine Clinic/Services`, `Hospital Auxiliary Unit`, `Patient Representative Services`, `Volunteer Services Department`, `Outpatient Surgery Services`, `Organ/Tissue Transplant Unit`, `Orthopedic Surgery Facility`, `Occupational Therapy Services`, `Physical Therapy Services`, `Recreational Therapy Services`, `Respiratory Therapy Services`, `Speech Therapy Services`, `Women's Health Center/Services`, `Cardiac Rehabilitation Program Facility`, `Non-Invasive Cardiac Assessment Services`, `Emergency Medical Technician`, `Disciplinary Contact`, `Case Manager`, `Place of Occurrence`, `Contracted Service Provider`, `Consultant's Office`, `Subcontractor`, `Service Supplier`, `Employer`, `Receiver`, `Claimant Authorized Representative`, `Data Processing Service Bureau`, `Performed At`, `Attending Physician`, `Operating Physician`, `Other Physician`, `Corrected Insured`, `Service Location`, `Hospital`, `Rendering Provider`, `Subscriber's Employer`, `Billing Provider`, `Pay-to Provider`, `Research Institute`, `Pharmacist`, `Admitting Surgeon`, `Commercial Insurer`, `Assistant Surgeon`, `Consulting Physician`, `Ordering Physician`, `Referring Provider`, `Dependent Name`, `Supervising Physician`, `Person or Other Entity Legally Responsible for a Child`, `Person or Other Entity With Whom a Child Resides`, `Previous Employer`, `Participating Laboratory`, `Facility`, `Physical Address`, `Mail Address`, `Dependent Insured`, `Clinic`, `Other Insured`, `Guardian`, `Paramedic`, `Paramedical Company`, `Previous Insured`, `Spouse Insured`, `Treatment Facility`, `Healthcare Professional Shortage Area (HPSA) Facility`, `Home Health Agency`, `Independent Physicians Association (IPA)`, `Injection Point`, `Insured or Subscriber`, `Insurer`, `Independent Lab`, `Legal Representative`, `Medical Insurance Carrier`, `Mammography Screening Center`, `Ordered By`, `Doctor of Optometry`, `Oxygen Therapy Facility`, `Patient Facility`, `Primary Insured or Subscriber`, `Primary Care Provider`, `Prior Insurance Carrier`, `Third Party Reviewing Preferred Provider Organization (PPO)`, `Third Party Repricing Preferred Provider Organization (PPO)`, `Primary Payer`, `Party to Receive Test Report`, `Party performing certification`, `Pickup Address`, `Pharmacy`, `Purchase Service Provider`, `Patient`, `Responsible Party`, `Policyholder`, `Physician`, `Managed Care`, `Chiropractor`, `Dentist`, `Doctor of Osteopathy`, `Podiatrist`, `Group Practice`, `Medical Doctor`, `Receiving Location`, `Rural Health Clinic`, `Skilled Nursing Facility`, `Secondary Payer`, `Service Provider`, `Supplier/Manufacturer`, `Transfer Point`, `Testing Laboratory`, `Third Party Reviewing Organization (TPO)`, `Transfer To`, `Tertiary Payer`, `Third Party Repricing Organization (TPO)`, `Nursing Home`, `Utilization Management Organization`, `Spouse`, `Durable Medical Equipment Supplier`, `Mutually Defined` - **`claims[].serviceDetails[].status[].entityCode`** (`string`): Entity Identifier codes used to identify organizational entities, physical locations, properties, or individuals. - Allowed values: `1E`, `1G`, `1H`, `1I`, `1O`, `1P`, `1Q`, `1R`, `1S`, `1T`, `1U`, `1V`, `1W`, `1X`, `1Y`, `1Z`, `2A`, `2B`, `2D`, `2E`, `2I`, `2K`, `2P`, `2Q`, `2S`, `2Z`, `03`, `3A`, `3C`, `3D`, `3E`, `3F`, `3G`, `3H`, `3I`, `3J`, `3K`, `3L`, `3M`, `3N`, `3O`, `3P`, `3Q`, `3R`, `3S`, `3T`, `3U`, `3V`, `3W`, `3X`, `3Y`, `3Z`, `4A`, `4B`, `4C`, `4D`, `4E`, `4F`, `4G`, `4H`, `4I`, `4J`, `4L`, `4M`, `4N`, `4O`, `4P`, `4Q`, `4R`, `4S`, `4U`, `4V`, `4W`, `4X`, `4Y`, `4Z`, `5A`, `5B`, `5C`, `5D`, `5E`, `5F`, `5G`, `5H`, `5I`, `5J`, `5K`, `5L`, `5M`, `5N`, `5O`, `5P`, `5Q`, `5R`, `5S`, `5T`, `5U`, `5V`, `5W`, `5X`, `5Y`, `5Z`, `6A`, `6B`, `6C`, `6D`, `6E`, `6F`, `6G`, `6H`, `6I`, `6J`, `6K`, `6L`, `6M`, `6N`, `6O`, `6P`, `6Q`, `6R`, `6S`, `6U`, `6V`, `6W`, `6X`, `6Y`, `7C`, `13`, `17`, `28`, `30`, `36`, `40`, `43`, `44`, `61`, `71`, `72`, `73`, `74`, `77`, `80`, `82`, `84`, `85`, `87`, `95`, `CK`, `CZ`, `D2`, `DD`, `DJ`, `DK`, `DN`, `DO`, `DQ`, `E1`, `E2`, `E7`, `E9`, `FA`, `FD`, `FE`, `G0`, `G3`, `GB`, `GD`, `GI`, `GJ`, `GK`, `GM`, `GY`, `HF`, `HH`, `I3`, `IJ`, `IL`, `IN`, `LI`, `LR`, `MR`, `MSC`, `OB`, `OD`, `OX`, `P0`, `P2`, `P3`, `P4`, `P6`, `P7`, `PRP`, `PT`, `PV`, `PW`, `QA`, `QB`, `QC`, `QD`, `QE`, `QH`, `QK`, `QL`, `QN`, `QO`, `QS`, `QV`, `QY`, `RC`, `RW`, `S4`, `SEP`, `SJ`, `SU`, `T4`, `TL`, `TQ`, `TT`, `TTP`, `TU`, `UH`, `X3`, `X4`, `X5`, `ZZ` - **`claims[].serviceDetails[].status[].statusCategoryCode`** (`string`): The category code for the status. Visit [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) in the official X12 documentation for a complete list. - **`claims[].serviceDetails[].status[].statusCategoryCodeValue`** (`string`): The description of the `statusCategoryCode`. - **`claims[].serviceDetails[].status[].statusCode`** (`string`): The status code used to identify the status of an entire service line. This is either a [Health Care Claim Status Code](https://x12.org/codes/claim-status-codes) or a National Council for Prescription Drug Programs Reject/Payment Code, when the status is related to pharmacy claims. - **`claims[].serviceDetails[].status[].statusCodeValue`** (`string`): The description of the `statusCode`. - **`controlNumber`** (`string`): The control number the payer provided in the claim status response. This is used to identify the transaction. - **`dependent`** (`object`) - **`dependent.dateOfBirth`** (`string`): The dependent's date of birth. - **`dependent.firstName`** (`string`) (required): The dependent's first name as specified on their insurance policy. - **`dependent.gender`** (`string`): A code indicating the dependent's gender. If the claim set the dependent's gender to `U` for unknown, you should omit this property from the claim status request. - Allowed values: `M`, `F` - **`dependent.groupNumber`** (`string`): The group number associated with the subscriber and dependent's insurance policy. - **`dependent.lastName`** (`string`) (required): The dependent's last name as specified on their insurance policy. - **`dependent.suffix`** (`string`): The dependent's name suffix, such as Sr. or III. Only include the dependent's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`errorResponse`** (`object`) - **`errorResponse.code`** (`string`) - **`errorResponse.description`** (`string`) - **`errorResponse.errors`** (`array of ErrorDetail objects`) - **`errorResponse.errors[].code`** (`string`): The error code. - **`errorResponse.errors[].description`** (`string`): The description of the error code. - **`errorResponse.errors[].field`** (`string`): The attribute that caused the error. - **`errorResponse.errors[].followupAction`** (`string`): Follow-up actions to correct the error. - **`errorResponse.errors[].location`** (`string`): Where the error occurred within the request syntax. If this is a network or system error, there is no location attribute. - **`errorResponse.errors[].value`** (`string`): The value that caused the error. - **`errorResponse.transactionIdentifier`** (`object`) - **`errorResponse.transactionIdentifier.customerTransactionId`** (`string`) - **`errorResponse.transactionIdentifier.transactionId`** (`string`) - **`id`** (`string`): A globally unique identifier for this claim status check across all Stedi accounts. It's formatted as `csc_`. For example: `csc_550e8400-e29b-41d4-a716-446655440000`. You can use this ID to track this claim status check and to construct deep links to claim status checks in the Stedi portal. - **`implementationTransactionSetSyntaxError`** (`string`): The syntax error code in the 999 Implementation Acknowledgment. It indicates the type of error (if present) in the EDI request syntax. Visit `IK502` in the [Implementation Acknowledgment specification](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231/01HRF41ES1DVGCA6X1EHSRPFXZ#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.transaction_set_response_trailer_IK5.properties.implementation_transaction_set_syntax_error_code_02) for a complete list. - **`meta`** (`object`): Metadata about the response. - **`meta.applicationMode`** (`string`): Identifies where this request can be found for support. - **`meta.billerId`** (`string`): The biller ID assigned to this request. - **`meta.outboundTraceId`** (`string`): The transaction identifier in the outbound request's `BHT03` element that Stedi assigns. Although a unique identifier, instead of this property, we recommend using `id` to identify and track claims status checks. A claims status check's `id` is guaranteed to be globally unique, and you can use it to deep link to the claims status check's results within the Stedi portal. - **`meta.senderId`** (`string`): The sender ID assigned to this request. - **`meta.submitterId`** (`string`): The submitter ID assigned to this request. - **`meta.traceId`** (`string`): The transaction identifier in the response's `BHT03` element, taken from the request's `BHT03` element if provided, else a unique identifier that Stedi assigns that is also used as the `outboundTraceId`. - **`payer`** (`object`): Information about the payer listed in the referenced claim. - **`payer.centersForMedicareAndMedicaidServicePlanId`** (`string`): The payer's Health Plan ID (HPID) or Other Entity Identifier (OEID). - **`payer.contactInformation`** (`object`) - **`payer.contactInformation.electronicDataInterChangeAccessNumber`** (`string`): The payer's Electronic Data Interchange Access number. - **`payer.contactInformation.email`** (`string`): The payer's email address. - **`payer.contactInformation.fax`** (`string`): The payer's fax number, without separators. For example, `5551123345` for `555-112-3345` - **`payer.contactInformation.name`** (`string`): The payer contact name. - **`payer.contactInformation.phone`** (`string`): The payer's telephone number. Phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`payer.contactInformation.phoneExtension`** (`string`): The payer's telephone extension. - **`payer.organizationName`** (`string`): The payer's organization name. For example `UNITEDHEALTHCARE`. - **`payer.payerIdentification`** (`string`): The payer's identification number. This is the `tradingPartnerServiceId`. - **`providers`** (`array of StatusResponseProvider objects`): Information about the billing and/or service providers related to the referenced claim. - **`providers[].etin`** (`string`): The Electronic Transmitter Identification Number (ETIN). - **`providers[].firstName`** (`string`): The provider's first name. - **`providers[].lastName`** (`string`): The provider's last name. - **`providers[].npi`** (`string`): The [National Provider Identification (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) number. - **`providers[].organizationName`** (`string`): The provider's organization name. - **`providers[].providerType`** (`string`) (required): Identifies the type of provider related to the referenced healthcare claim. - Allowed values: `BillingProvider`, `ServiceProvider` - **`providers[].spn`** (`string`): The service provider number. - **`providers[].taxId`** (`string`): The Taxpayer Identification Number (TIN). - **`providers[].tin`** (`string`) - **`reassociationKey`** (`string`): The control number for the transaction. - **`status`** (`string`): The status of the entire claim. - **`subscriber`** (`object`): Information about the subscriber listed in the referenced claim. - You must set both the `dateOfBirth` and `gender` properties when the subscriber is the patient unless the gender is unknown. Stedi determines that the subscriber is the patient when the `dependent` object is not included in the request. - If either `dateOfBirth` or `gender` is set, you must include both properties unless the gender is unknown. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`subscriber.firstName`** (`string`) (required): The subscriber's first name as specified on their policy. - **`subscriber.gender`** (`string`): A code indicating the subscriber's gender. If the claim set the subscriber's gender to `U` for unknown, you should omit this property from the claim status request. - Allowed values: `M`, `F` - **`subscriber.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`subscriber.lastName`** (`string`) (required): The subscriber's last name as specified on their policy. The subscriber can be an individual or a business entity. - **`subscriber.memberId`** (`string`) (required): The subscriber's insurance member ID. This is the unique identifier for the subscriber on the insurance policy. - **`subscriber.suffix`** (`string`): The subscriber's name suffix, such as Jr., Sr., or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original claim status request. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`transactionSetAcknowledgement`** (`string`): The acknowledgment code in the 999 Implementation Acknowledgment, an EDI file generated by the payer to acknowledge receipt of the claim status request. It indicates whether the claim status request was accepted or rejected due to errors in the EDI request syntax. - **`warnings`** (`array of Warning objects`): Issues with your claim status request that could affect the results, or information about the response. For example, warnings can help explain why the request was rejected. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. - **`x12`** (`string`): The raw X12 EDI response, which is either a 277 Status Request Response or a 999 Implementation Acknowledgment. A 999 indicates that the request data failed validation. Common failure reasons are missing required segments and invalid values. **Example:** ```json { "claims": [ { "claimStatus": { "amountPaid": "108.77", "checkIssueDate": "2025-07-17", "checkNumber": "123456789", "claimServiceDate": "20250701", "effectiveDate": "2025-07-17", "paidDate": "2025-07-15", "patientAccountNumber": "12345678", "statusCategoryCode": "F1", "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.", "statusCode": "65", "statusCodeValue": "Claim/line has been paid.", "submittedAmount": "267.54", "trackingNumber": "0123456789", "tradingPartnerClaimNumber": "0123456789" }, "serviceDetails": [ { "service": { "amountPaid": "108.77", "procedureId": "90837", "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes", "serviceIdQualifierCode": "HC", "submittedAmount": "267.54", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-07-17", "statusCategoryCode": "F1", "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.", "statusCode": "107", "statusCodeValue": "Processed according to contract provisions (Contract refers to provisions that exist between the Health Plan and a Provider of Health Care Services)." } ] } ] } ], "controlNumber": "123456789", "payer": { "organizationName": "UNITEDHEALTHCARE", "payerIdentification": "87726" }, "providers": [ { "npi": "1999999984", "organizationName": "Provider Name", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "Jane", "lastName": "Doe", "memberId": "UHC123456" }, "tradingPartnerServiceId": "87726", "x12": "ISA*00* *00* *ZZ*RECEIVER *ZZ*SENDER *250912*1718*^*00501*123456789*0*T*`~GS*HN*RECEIVERGS*SENDERGS*20250912*171842*1*X*005010X212~ST*277*1001*005010X212~BHT*0010*08*0123456789*20250912*171841*DG~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*1234567890~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*0~NM1*IL*1*DOE*JANE****MI*UHC123456~TRN*2*0123456789~STC*F1`65*20250717**267.54*108.77*20250715**20250717*123456789~REF*1K*0123456789~REF*EJ*12345678~DTP*472*D8*20250701~SVC*HC`90837`GT*267.54*108.77****1~STC*F1`107*20250717~DTP*472*D8*20250701~SE*19*1001~GE*1*1~IEA*1*123456789~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Real-Time Claim Status (276/277) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-claim-status You may need to submit a 276 real-time claim status request when you don't receive a 277CA claim acknowledgment or 835 Electronic Remittance Advice (ERA) response from the payer within your expected timeframe. 1. Call this endpoint with a JSON payload. - The request must be for a production claim that has entered the payer's processing system. Requests for test claims or claims that the payer hasn't yet accepted won't return results. - Providing too much information can negatively affect the results. You should start with our [recommended base request](/healthcare/check-claim-status#json-base-request). 2. Stedi generates the X12 276 EDI transaction and sends it to the payer. 3. The endpoint returns a synchronous 277 claim status response from the payer in JSON format. The response contains information about the claims matching the criteria you provided in the request and their current status. The response may contain information about more than one claim, if the payer has multiple claims on file that match the information you provided. ## API Specification Submit a 276/277 real-time claim status check in JSON format **Endpoint:** `POST /change/medicalnetwork/claimstatus/v2` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Request Body **Schema:** `ClaimStatusRequestContent` **Properties:** - **`controlNumber`** (`string`): Stedi generates a control number for each claim status check, so you don’t need to include this property in your request. - **`dependent`** (`object`) - **`dependent.dateOfBirth`** (`string`): The dependent's date of birth. - **`dependent.firstName`** (`string`) (required): The dependent's first name as specified on their insurance policy. - **`dependent.gender`** (`string`): A code indicating the dependent's gender. If the claim set the dependent's gender to `U` for unknown, you should omit this property from the claim status request. - Allowed values: `M`, `F` - **`dependent.groupNumber`** (`string`): The group number associated with the subscriber and dependent's insurance policy. - **`dependent.lastName`** (`string`) (required): The dependent's last name as specified on their insurance policy. - **`dependent.suffix`** (`string`): The dependent's name suffix, such as Sr. or III. Only include the dependent's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`encounter`** (`object`): Information about the referenced claim or claims for which you want to retrieve status information. - We recommend supplying a date range that is at least plus or minus 7 days from the date of the services listed in the claim, using the `beginningDateOfService` and `endDateOfService` properties. The payer may have stored a different date for the encounter than the one in your records, so providing a date range increases the likelihood that the payer will find a match. - Don't submit future dates - only submit date ranges up to and including today's date. Some payers reject requests containing future service dates. - **`encounter.beginningDateOfService`** (`string`): The date the service began. - **`encounter.billingType`** (`string`): The billing type reference ID. For example, the billing type for inpatient services is `111`. - **`encounter.clearingHouseClaimNumber`** (`string`): The claim number provided by the clearinghouse. - **`encounter.endDateOfService`** (`string`): The date the service ended. - **`encounter.locationIdentifier`** (`string`): The application or location system identifier. Some payers use this value to route your request to the correct claims adjudication system. Though this property is optional, omitting it can cause a payer to report that they couldn't find a claim even when it exists. This is common for institutional claims. Include this property when you know the value the payer expects. - **`encounter.patientAccountNumber`** (`string`): The patient account number provided by the service provider. - **`encounter.pharmacyPrescriptionNumber`** (`string`): The patient's pharmacy prescription number. - **`encounter.submittedAmount`** (`string`): The total charges submitted for the claim. Note that not all payer systems retain the original submitted charges; they are sometimes changed during processing. - **`encounter.trackingNumber`** (`string`): This is the tracking number assigned to the claim status request. It is returned in the response as `claims[].claimStatus.trackingNumber`. If the payer requires a tracking number and you do not supply one, Stedi generates a tracking number for you from a UUID. - **`encounter.tradingPartnerClaimNumber`** (`string`): An identifier for the claim, assigned by the payer. - **`providers`** (`array of StatusRequestProvider objects`) (required): Information about the billing provider and (optionally) service providers related to the referenced claim. - Exactly one billing provider is **required** in this array. Requests that include only a service provider are rejected with a `400` error. - For each provider, you must set the `providerType` and one of the following identifiers: `npi`, `taxId`, or `etin`. - We recommend omitting the provider's name. If omitted, Stedi uses the name associated with the provider's `npi` record in the National Plan and Provider Enumeration System (NPPES). This applies to the `ServiceProvider`, or to the `BillingProvider` when there's no `ServiceProvider`. We only recommend explicitly setting the provider name if you believe that the provider name on file with the payer differs from the provider name in NPPES. - When the `providerType` = `BillingProvider`, we recommend setting `etin` as the identifier. - **`providers[].etin`** (`string`): The Electronic Transmitter Identification Number (ETIN). This identifier is preferred if the payer specifically assigned one for the provider. If not, most payers will accept the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier) or TIN instead. - **`providers[].firstName`** (`string`): The provider's first name. Use when the provider is an individual. - **`providers[].lastName`** (`string`): The provider's last name. Use when the provider is an individual. - **`providers[].npi`** (`string`): The [National Provider Identification (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) number. - **`providers[].organizationName`** (`string`): The provider's organization name. Use when the provider is not an individual, such as a hospital or clinic. - **`providers[].providerType`** (`string`) (required): Identifies the type of provider related to the referenced healthcare claim. - Allowed values: `BillingProvider`, `ServiceProvider` - **`providers[].spn`** (`string`): Deprecated; The service provider number. Use `npi` to identify the service provider instead. - **`providers[].taxId`** (`string`): The Taxpayer Identification Number (TIN). - **`providers[].tin`** (`string`) - **`serviceLineInformation`** (`object`): Identify a service line listed in the referenced claim. Used to request status for a specific service line. - **`serviceLineInformation.lineItemChargeAmount`** (`string`) (required): The original submitted charge for the service line, expressed as a decimal. For example, `100.00`. - **`serviceLineInformation.lineItemControlNumber`** (`string`): An identifier for the service line. This matches the `claimInformation.serviceLines[].providerControlNumber` submitted for the service line in the original claim. - **`serviceLineInformation.procedureCode`** (`string`) (required): The procedure code. - **`serviceLineInformation.procedureModifiers`** (`array of strings`): A modifier code that clarifies or improves the reporting accuracy of the associated `procedureCode`. If not required, do not send. - **`serviceLineInformation.productOrServiceIDQualifier`** (`string`) (required): A code identifying the type/source of the descriptive number used in Product/Service ID. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier) for a complete list. - Allowed values: `AD`, `ER`, `HC`, `HP`, `IV`, `N4`, `NU`, `WK` - **`serviceLineInformation.revenueCode`** (`string`): The revenue code for the service line. This is the National Uniform Billing Committee revenue code. - **`serviceLineInformation.serviceLineDate`** (`string`) (required): The date the service line began. - **`serviceLineInformation.serviceLineEndDate`** (`string`): The date the service line ended. - **`serviceLineInformation.unitsOfServiceCount`** (`string`) (required): The number of units of service for the service line. - **`serviceLinesInformation`** (`array of ServiceLineInformation objects`) - **`serviceLinesInformation[].lineItemChargeAmount`** (`string`) (required): The original submitted charge for the service line, expressed as a decimal. For example, `100.00`. - **`serviceLinesInformation[].lineItemControlNumber`** (`string`): An identifier for the service line. This matches the `claimInformation.serviceLines[].providerControlNumber` submitted for the service line in the original claim. - **`serviceLinesInformation[].procedureCode`** (`string`) (required): The procedure code. - **`serviceLinesInformation[].procedureModifiers`** (`array of strings`): A modifier code that clarifies or improves the reporting accuracy of the associated `procedureCode`. If not required, do not send. - **`serviceLinesInformation[].productOrServiceIDQualifier`** (`string`) (required): A code identifying the type/source of the descriptive number used in Product/Service ID. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier) for a complete list. - Allowed values: `AD`, `ER`, `HC`, `HP`, `IV`, `N4`, `NU`, `WK` - **`serviceLinesInformation[].revenueCode`** (`string`): The revenue code for the service line. This is the National Uniform Billing Committee revenue code. - **`serviceLinesInformation[].serviceLineDate`** (`string`) (required): The date the service line began. - **`serviceLinesInformation[].serviceLineEndDate`** (`string`): The date the service line ended. - **`serviceLinesInformation[].unitsOfServiceCount`** (`string`) (required): The number of units of service for the service line. - **`subscriber`** (`object`) (required): Information about the subscriber listed in the referenced claim. - You must set both the `dateOfBirth` and `gender` properties when the subscriber is the patient unless the gender is unknown. Stedi determines that the subscriber is the patient when the `dependent` object is not included in the request. - If either `dateOfBirth` or `gender` is set, you must include both properties unless the gender is unknown. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`subscriber.firstName`** (`string`) (required): The subscriber's first name as specified on their policy. - **`subscriber.gender`** (`string`): A code indicating the subscriber's gender. If the claim set the subscriber's gender to `U` for unknown, you should omit this property from the claim status request. - Allowed values: `M`, `F` - **`subscriber.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`subscriber.lastName`** (`string`) (required): The subscriber's last name as specified on their policy. The subscriber can be an individual or a business entity. - **`subscriber.memberId`** (`string`) (required): The subscriber's insurance member ID. This is the unique identifier for the subscriber on the insurance policy. - **`subscriber.suffix`** (`string`): The subscriber's name suffix, such as Jr., Sr., or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`tradingPartnerName`** (`string`): This is the payer name, such as Cigna or Aetna. - **`tradingPartnerServiceId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. **Example:** ```json { "encounter": { "beginningDateOfService": "20250630", "endDateOfService": "20250702" }, "providers": [ { "npi": "1999999984", "organizationName": "Provider Name", "providerType": "BillingProvider" } ], "subscriber": { "dateOfBirth": "19710101", "firstName": "Jane", "lastName": "Doe", "memberId": "UHC123456" }, "tradingPartnerServiceId": "87726" } ``` ### Responses #### 200 ClaimStatus 200 response **Schema:** `ClaimStatusResponseContent` **Properties:** - **`claims`** (`array of Claim objects`): The status information for the claim referenced in the original claim status request. The payer may return multiple claims in the response if they have more than one claim on file that matches the information you provided. - **`claims[].claimStatus`** (`object`): The status, required action, and paid information of a claim or service line. - **`claims[].claimStatus.amountPaid`** (`string`): The total amount paid for the claim. May be zero when no payment is being made. Some payers can provide the adjudicated payment amount before they issue the remittance. - **`claims[].claimStatus.checkIssueDate`** (`string`): The date the payer issued the check for payment. This may also contain a non-payment remittance advice date, if available from the payer. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].claimStatus.checkNumber`** (`string`): The check identification number or electronic funds transfer (EFT) trace number. This number is used to track the payment. This may also contain a non-payment remittance advice Trace Number (835 or paper), if available from the payer. - **`claims[].claimStatus.claimServiceDate`** (`string`): Either a single date (formatted as `YYYYMMDD`) or a range of dates (formatted as `YYYYMMDD-YYYYMMDD`) identifying the period of service related to the claim. This property is derived from the service level dates. - **`claims[].claimStatus.clearingHouseClaimNumber`** (`string`): The claim number provided by the clearinghouse. - **`claims[].claimStatus.effectiveDate`** (`string`): The date the claim was placed in this status by the payer's adjudication process. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].claimStatus.entity`** (`string`): Entity descriptions corresponding to Entity Identifier codes. - Allowed values: `Health Maintenance Organization (HMO)`, `Oncology Center`, `Kidney Dialysis Unit`, `Preferred Provider Organization (PPO)`, `Acute Care Hospital`, `Provider`, `Military Facility`, `University, College or School`, `Outpatient Surgicenter`, `Physician, Clinic or Group Practice`, `Long Term Care Facility`, `Extended Care Facility`, `Psychiatric Health Facility`, `Laboratory`, `Retail Pharmacy`, `Home Health Care`, `Federal, State, County or City Facility`, `Third-Party Administrator`, `Miscellaneous Health Care Facility`, `Non-Health Care Miscellaneous Facility`, `Church Operated Facility`, `Partnership`, `Public Health Service Facility`, `Veterans Administration Facility`, `Public Health Service Indian Service Facility`, `Hospital Unit of an Institution (prison hospital, college infirmary, etc.)`, `Dependent`, `Hospital Unit Within an Institution for the Mentally Retarded`, `Tuberculosis and Other Respiratory Diseases Facility`, `Obstetrics and Gynecology Facility`, `Eye, Ear, Nose and Throat Facility`, `Rehabilitation Facility`, `Orthopedic Facility`, `Chronic Disease Facility`, `Other Specialty Facility`, `Children's General Facility`, `Children's Hospital Unit of an Institution`, `Children's Psychiatric Facility`, `Children's Tuberculosis and Other Respiratory Diseases Facility`, `Children's Eye, Ear, Nose and Throat Facility`, `Children's Rehabilitation Facility`, `Children's Orthopedic Facility`, `Children's Chronic Disease Facility`, `Children's Other Specialty Facility`, `Institution for Mental Retardation`, `Alcoholism and Other Chemical Dependency Facility`, `General Inpatient Care for AIDS/ARC Facility`, `AIDS/ARC Unit`, `Specialized Outpatient Program for AIDS/ARC`, `Alcohol/Drug Abuse or Dependency Inpatient Unit`, `Alcohol/Drug Abuse or Dependency Outpatient Services`, `Arthritis Treatment Center`, `Birthing Room/LDRP Room`, `Burn Care Unit`, `Cardiac Catherization Laboratory`, `Open-Heart Surgery Facility`, `Cardiac Intensive Care Unit`, `Angioplasty Facility`, `Chronic Obstructive Pulmonary Disease Service Facility`, `Emergency Department`, `Trauma Center (Certified)`, `Extracorporeal Shock-Wave Lithotripter (ESWL) Unit`, `Genetic Counseling/Screening Services`, `Adult Day Care Program Facility`, `Alzheimer's Diagnostic/Assessment Services`, `Comprehensive Geriatric Assessment Facility`, `Emergency Response (Geriatric) Unit`, `Geriatric Acute Care Unit`, `Geriatric Clinics`, `Respite Care Facility`, `Patient Education Unit`, `Community Health Promotion Facility`, `Worksite Health Promotion Facility`, `Hemodialysis Facility`, `Home Health Services`, `Hospice`, `Medical Surgical or Other Intensive Care Unit`, `Histopathology Laboratory`, `Blood Bank`, `Neonatal Intensive Care Unit`, `Obstetrics Unit`, `Occupational Health Services`, `Organized Outpatient Services`, `Pediatric Acute Inpatient Unit`, `Psychiatric Child/Adolescent Services`, `Psychiatric Consultation-Liaison Services`, `Psychiatric Education Services`, `Psychiatric Emergency Services`, `Psychiatric Geriatric Services`, `Psychiatric Inpatient Unit`, `Psychiatric Outpatient Services`, `Psychiatric Partial Hospitalization Program`, `Megavoltage Radiation Therapy Unit`, `Radioactive Implants Unit`, `Therapeutic Radioisotope Facility`, `X-Ray Radiation Therapy Unit`, `CT Scanner Unit`, `Diagnostic Radioisotope Facility`, `Magnetic Resonance Imaging (MRI) Facility`, `Ultrasound Unit`, `Rehabilitation Inpatient Unit`, `Rehabilitation Outpatient Services`, `Reproductive Health Services`, `Skilled Nursing or Other Long-Term Care Unit`, `Single Photon Emission Computerized Tomography (SPECT) Unit`, `Organized Social Work Service Facility`, `Outpatient Social Work Services`, `Emergency Department Social Work Services`, `Sports Medicine Clinic/Services`, `Hospital Auxiliary Unit`, `Patient Representative Services`, `Volunteer Services Department`, `Outpatient Surgery Services`, `Organ/Tissue Transplant Unit`, `Orthopedic Surgery Facility`, `Occupational Therapy Services`, `Physical Therapy Services`, `Recreational Therapy Services`, `Respiratory Therapy Services`, `Speech Therapy Services`, `Women's Health Center/Services`, `Cardiac Rehabilitation Program Facility`, `Non-Invasive Cardiac Assessment Services`, `Emergency Medical Technician`, `Disciplinary Contact`, `Case Manager`, `Place of Occurrence`, `Contracted Service Provider`, `Consultant's Office`, `Subcontractor`, `Service Supplier`, `Employer`, `Receiver`, `Claimant Authorized Representative`, `Data Processing Service Bureau`, `Performed At`, `Attending Physician`, `Operating Physician`, `Other Physician`, `Corrected Insured`, `Service Location`, `Hospital`, `Rendering Provider`, `Subscriber's Employer`, `Billing Provider`, `Pay-to Provider`, `Research Institute`, `Pharmacist`, `Admitting Surgeon`, `Commercial Insurer`, `Assistant Surgeon`, `Consulting Physician`, `Ordering Physician`, `Referring Provider`, `Dependent Name`, `Supervising Physician`, `Person or Other Entity Legally Responsible for a Child`, `Person or Other Entity With Whom a Child Resides`, `Previous Employer`, `Participating Laboratory`, `Facility`, `Physical Address`, `Mail Address`, `Dependent Insured`, `Clinic`, `Other Insured`, `Guardian`, `Paramedic`, `Paramedical Company`, `Previous Insured`, `Spouse Insured`, `Treatment Facility`, `Healthcare Professional Shortage Area (HPSA) Facility`, `Home Health Agency`, `Independent Physicians Association (IPA)`, `Injection Point`, `Insured or Subscriber`, `Insurer`, `Independent Lab`, `Legal Representative`, `Medical Insurance Carrier`, `Mammography Screening Center`, `Ordered By`, `Doctor of Optometry`, `Oxygen Therapy Facility`, `Patient Facility`, `Primary Insured or Subscriber`, `Primary Care Provider`, `Prior Insurance Carrier`, `Third Party Reviewing Preferred Provider Organization (PPO)`, `Third Party Repricing Preferred Provider Organization (PPO)`, `Primary Payer`, `Party to Receive Test Report`, `Party performing certification`, `Pickup Address`, `Pharmacy`, `Purchase Service Provider`, `Patient`, `Responsible Party`, `Policyholder`, `Physician`, `Managed Care`, `Chiropractor`, `Dentist`, `Doctor of Osteopathy`, `Podiatrist`, `Group Practice`, `Medical Doctor`, `Receiving Location`, `Rural Health Clinic`, `Skilled Nursing Facility`, `Secondary Payer`, `Service Provider`, `Supplier/Manufacturer`, `Transfer Point`, `Testing Laboratory`, `Third Party Reviewing Organization (TPO)`, `Transfer To`, `Tertiary Payer`, `Third Party Repricing Organization (TPO)`, `Nursing Home`, `Utilization Management Organization`, `Spouse`, `Durable Medical Equipment Supplier`, `Mutually Defined` - **`claims[].claimStatus.entityCode`** (`string`): Entity Identifier codes used to identify organizational entities, physical locations, properties, or individuals. - Allowed values: `1E`, `1G`, `1H`, `1I`, `1O`, `1P`, `1Q`, `1R`, `1S`, `1T`, `1U`, `1V`, `1W`, `1X`, `1Y`, `1Z`, `2A`, `2B`, `2D`, `2E`, `2I`, `2K`, `2P`, `2Q`, `2S`, `2Z`, `03`, `3A`, `3C`, `3D`, `3E`, `3F`, `3G`, `3H`, `3I`, `3J`, `3K`, `3L`, `3M`, `3N`, `3O`, `3P`, `3Q`, `3R`, `3S`, `3T`, `3U`, `3V`, `3W`, `3X`, `3Y`, `3Z`, `4A`, `4B`, `4C`, `4D`, `4E`, `4F`, `4G`, `4H`, `4I`, `4J`, `4L`, `4M`, `4N`, `4O`, `4P`, `4Q`, `4R`, `4S`, `4U`, `4V`, `4W`, `4X`, `4Y`, `4Z`, `5A`, `5B`, `5C`, `5D`, `5E`, `5F`, `5G`, `5H`, `5I`, `5J`, `5K`, `5L`, `5M`, `5N`, `5O`, `5P`, `5Q`, `5R`, `5S`, `5T`, `5U`, `5V`, `5W`, `5X`, `5Y`, `5Z`, `6A`, `6B`, `6C`, `6D`, `6E`, `6F`, `6G`, `6H`, `6I`, `6J`, `6K`, `6L`, `6M`, `6N`, `6O`, `6P`, `6Q`, `6R`, `6S`, `6U`, `6V`, `6W`, `6X`, `6Y`, `7C`, `13`, `17`, `28`, `30`, `36`, `40`, `43`, `44`, `61`, `71`, `72`, `73`, `74`, `77`, `80`, `82`, `84`, `85`, `87`, `95`, `CK`, `CZ`, `D2`, `DD`, `DJ`, `DK`, `DN`, `DO`, `DQ`, `E1`, `E2`, `E7`, `E9`, `FA`, `FD`, `FE`, `G0`, `G3`, `GB`, `GD`, `GI`, `GJ`, `GK`, `GM`, `GY`, `HF`, `HH`, `I3`, `IJ`, `IL`, `IN`, `LI`, `LR`, `MR`, `MSC`, `OB`, `OD`, `OX`, `P0`, `P2`, `P3`, `P4`, `P6`, `P7`, `PRP`, `PT`, `PV`, `PW`, `QA`, `QB`, `QC`, `QD`, `QE`, `QH`, `QK`, `QL`, `QN`, `QO`, `QS`, `QV`, `QY`, `RC`, `RW`, `S4`, `SEP`, `SJ`, `SU`, `T4`, `TL`, `TQ`, `TT`, `TTP`, `TU`, `UH`, `X3`, `X4`, `X5`, `ZZ` - **`claims[].claimStatus.paidDate`** (`string`): This is the date of denial or approval for the claim. This date may or may not be the same as the issue date of the check, EFT, or non-payment remittance. Some payers can provide this date before they issue the remittance. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].claimStatus.patientAccountNumber`** (`string`): The patient account number provided by the service provider in the original claim. You can use this value to correlate the claim status response to the original claim. - **`claims[].claimStatus.statusCategoryCode`** (`string`): The status category code. Visit [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) in the official X12 documentation for a complete list. - **`claims[].claimStatus.statusCategoryCodeValue`** (`string`): The description of the `statusCategoryCode`. - **`claims[].claimStatus.statusCode`** (`string`): The status code used to identify the status of an entire claim or a service line. For example, `20` - Accepted for Processing. This is either a Health Care Claim Status Code or a National Council for Prescription Drug Programs (NCPDP) Reject/Payment Code, when the status is related to pharmacy claims. Visit [Claim Status Codes](https://x12.org/codes/claim-status-codes) in the official X12 documentation or the [NCPDP website](https://ncpdp.org/) for a complete list of codes and their values. - **`claims[].claimStatus.statusCodeValue`** (`string`): The description of the `statusCode`. - **`claims[].claimStatus.submittedAmount`** (`string`): The total charges submitted for the claim. The total claim charge may change from the submitted claim total charge based on claims processing instructions, such as claim splitting. Some payers may not store the original submitted charge. Some HMO encounters supply zero as the amount of original charges. - **`claims[].claimStatus.trackingNumber`** (`string`): This is the trace or reference number of the original claim status request. - **`claims[].claimStatus.tradingPartnerClaimNumber`** (`string`): An identifier for the claim, assigned by the payer. - **`claims[].serviceDetails`** (`array of ServiceDetail objects`): Information about specific service lines and their status. Payers may not return service line details for all claims, even when you requested them. - **`claims[].serviceDetails[].service`** (`object`): Information about a service line listed in the referenced claim. - **`claims[].serviceDetails[].service.amountPaid`** (`string`): The amount paid for the service line, expressed as a decimal. For example, `100.00`. - **`claims[].serviceDetails[].service.procedureId`** (`string`): Identifying number for product or service. - **`claims[].serviceDetails[].service.procedureModifiers`** (`array of strings`): Procedure modifier codes that provide additional information about the service performed. - **`claims[].serviceDetails[].service.revenueCode`** (`string`): The National Uniform Billing Committee revenue code. - **`claims[].serviceDetails[].service.serviceIdQualifier`** (`string`): The definition of the `serviceIdQualifierCode`. For example, `American Dental Association Codes`. - **`claims[].serviceDetails[].service.serviceIdQualifierCode`** (`string`): A code identifying the type/source of the `procedureId`. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier) for a complete list. - Allowed values: `AD`, `ER`, `HC`, `HP`, `IV`, `N4`, `NU`, `WK` - **`claims[].serviceDetails[].service.submittedAmount`** (`string`): The amount submitted for the service line, expressed as a decimal. For example, `100.00`. This is the line item total on the current claim service status. - **`claims[].serviceDetails[].service.submittedUnits`** (`string`): The number of units of service submitted. - **`claims[].serviceDetails[].status`** (`array of Status objects`): Information about the status, required action, and paid information of a service line. - **`claims[].serviceDetails[].status[].effectiveDate`** (`string`): The date the service line was placed in this status by the payer's adjudication process. This value is returned in ISO 8601 date format (YYYY-MM-DD). For example: 2026-03-04. - **`claims[].serviceDetails[].status[].entity`** (`string`): Entity descriptions corresponding to Entity Identifier codes. - Allowed values: `Health Maintenance Organization (HMO)`, `Oncology Center`, `Kidney Dialysis Unit`, `Preferred Provider Organization (PPO)`, `Acute Care Hospital`, `Provider`, `Military Facility`, `University, College or School`, `Outpatient Surgicenter`, `Physician, Clinic or Group Practice`, `Long Term Care Facility`, `Extended Care Facility`, `Psychiatric Health Facility`, `Laboratory`, `Retail Pharmacy`, `Home Health Care`, `Federal, State, County or City Facility`, `Third-Party Administrator`, `Miscellaneous Health Care Facility`, `Non-Health Care Miscellaneous Facility`, `Church Operated Facility`, `Partnership`, `Public Health Service Facility`, `Veterans Administration Facility`, `Public Health Service Indian Service Facility`, `Hospital Unit of an Institution (prison hospital, college infirmary, etc.)`, `Dependent`, `Hospital Unit Within an Institution for the Mentally Retarded`, `Tuberculosis and Other Respiratory Diseases Facility`, `Obstetrics and Gynecology Facility`, `Eye, Ear, Nose and Throat Facility`, `Rehabilitation Facility`, `Orthopedic Facility`, `Chronic Disease Facility`, `Other Specialty Facility`, `Children's General Facility`, `Children's Hospital Unit of an Institution`, `Children's Psychiatric Facility`, `Children's Tuberculosis and Other Respiratory Diseases Facility`, `Children's Eye, Ear, Nose and Throat Facility`, `Children's Rehabilitation Facility`, `Children's Orthopedic Facility`, `Children's Chronic Disease Facility`, `Children's Other Specialty Facility`, `Institution for Mental Retardation`, `Alcoholism and Other Chemical Dependency Facility`, `General Inpatient Care for AIDS/ARC Facility`, `AIDS/ARC Unit`, `Specialized Outpatient Program for AIDS/ARC`, `Alcohol/Drug Abuse or Dependency Inpatient Unit`, `Alcohol/Drug Abuse or Dependency Outpatient Services`, `Arthritis Treatment Center`, `Birthing Room/LDRP Room`, `Burn Care Unit`, `Cardiac Catherization Laboratory`, `Open-Heart Surgery Facility`, `Cardiac Intensive Care Unit`, `Angioplasty Facility`, `Chronic Obstructive Pulmonary Disease Service Facility`, `Emergency Department`, `Trauma Center (Certified)`, `Extracorporeal Shock-Wave Lithotripter (ESWL) Unit`, `Genetic Counseling/Screening Services`, `Adult Day Care Program Facility`, `Alzheimer's Diagnostic/Assessment Services`, `Comprehensive Geriatric Assessment Facility`, `Emergency Response (Geriatric) Unit`, `Geriatric Acute Care Unit`, `Geriatric Clinics`, `Respite Care Facility`, `Patient Education Unit`, `Community Health Promotion Facility`, `Worksite Health Promotion Facility`, `Hemodialysis Facility`, `Home Health Services`, `Hospice`, `Medical Surgical or Other Intensive Care Unit`, `Histopathology Laboratory`, `Blood Bank`, `Neonatal Intensive Care Unit`, `Obstetrics Unit`, `Occupational Health Services`, `Organized Outpatient Services`, `Pediatric Acute Inpatient Unit`, `Psychiatric Child/Adolescent Services`, `Psychiatric Consultation-Liaison Services`, `Psychiatric Education Services`, `Psychiatric Emergency Services`, `Psychiatric Geriatric Services`, `Psychiatric Inpatient Unit`, `Psychiatric Outpatient Services`, `Psychiatric Partial Hospitalization Program`, `Megavoltage Radiation Therapy Unit`, `Radioactive Implants Unit`, `Therapeutic Radioisotope Facility`, `X-Ray Radiation Therapy Unit`, `CT Scanner Unit`, `Diagnostic Radioisotope Facility`, `Magnetic Resonance Imaging (MRI) Facility`, `Ultrasound Unit`, `Rehabilitation Inpatient Unit`, `Rehabilitation Outpatient Services`, `Reproductive Health Services`, `Skilled Nursing or Other Long-Term Care Unit`, `Single Photon Emission Computerized Tomography (SPECT) Unit`, `Organized Social Work Service Facility`, `Outpatient Social Work Services`, `Emergency Department Social Work Services`, `Sports Medicine Clinic/Services`, `Hospital Auxiliary Unit`, `Patient Representative Services`, `Volunteer Services Department`, `Outpatient Surgery Services`, `Organ/Tissue Transplant Unit`, `Orthopedic Surgery Facility`, `Occupational Therapy Services`, `Physical Therapy Services`, `Recreational Therapy Services`, `Respiratory Therapy Services`, `Speech Therapy Services`, `Women's Health Center/Services`, `Cardiac Rehabilitation Program Facility`, `Non-Invasive Cardiac Assessment Services`, `Emergency Medical Technician`, `Disciplinary Contact`, `Case Manager`, `Place of Occurrence`, `Contracted Service Provider`, `Consultant's Office`, `Subcontractor`, `Service Supplier`, `Employer`, `Receiver`, `Claimant Authorized Representative`, `Data Processing Service Bureau`, `Performed At`, `Attending Physician`, `Operating Physician`, `Other Physician`, `Corrected Insured`, `Service Location`, `Hospital`, `Rendering Provider`, `Subscriber's Employer`, `Billing Provider`, `Pay-to Provider`, `Research Institute`, `Pharmacist`, `Admitting Surgeon`, `Commercial Insurer`, `Assistant Surgeon`, `Consulting Physician`, `Ordering Physician`, `Referring Provider`, `Dependent Name`, `Supervising Physician`, `Person or Other Entity Legally Responsible for a Child`, `Person or Other Entity With Whom a Child Resides`, `Previous Employer`, `Participating Laboratory`, `Facility`, `Physical Address`, `Mail Address`, `Dependent Insured`, `Clinic`, `Other Insured`, `Guardian`, `Paramedic`, `Paramedical Company`, `Previous Insured`, `Spouse Insured`, `Treatment Facility`, `Healthcare Professional Shortage Area (HPSA) Facility`, `Home Health Agency`, `Independent Physicians Association (IPA)`, `Injection Point`, `Insured or Subscriber`, `Insurer`, `Independent Lab`, `Legal Representative`, `Medical Insurance Carrier`, `Mammography Screening Center`, `Ordered By`, `Doctor of Optometry`, `Oxygen Therapy Facility`, `Patient Facility`, `Primary Insured or Subscriber`, `Primary Care Provider`, `Prior Insurance Carrier`, `Third Party Reviewing Preferred Provider Organization (PPO)`, `Third Party Repricing Preferred Provider Organization (PPO)`, `Primary Payer`, `Party to Receive Test Report`, `Party performing certification`, `Pickup Address`, `Pharmacy`, `Purchase Service Provider`, `Patient`, `Responsible Party`, `Policyholder`, `Physician`, `Managed Care`, `Chiropractor`, `Dentist`, `Doctor of Osteopathy`, `Podiatrist`, `Group Practice`, `Medical Doctor`, `Receiving Location`, `Rural Health Clinic`, `Skilled Nursing Facility`, `Secondary Payer`, `Service Provider`, `Supplier/Manufacturer`, `Transfer Point`, `Testing Laboratory`, `Third Party Reviewing Organization (TPO)`, `Transfer To`, `Tertiary Payer`, `Third Party Repricing Organization (TPO)`, `Nursing Home`, `Utilization Management Organization`, `Spouse`, `Durable Medical Equipment Supplier`, `Mutually Defined` - **`claims[].serviceDetails[].status[].entityCode`** (`string`): Entity Identifier codes used to identify organizational entities, physical locations, properties, or individuals. - Allowed values: `1E`, `1G`, `1H`, `1I`, `1O`, `1P`, `1Q`, `1R`, `1S`, `1T`, `1U`, `1V`, `1W`, `1X`, `1Y`, `1Z`, `2A`, `2B`, `2D`, `2E`, `2I`, `2K`, `2P`, `2Q`, `2S`, `2Z`, `03`, `3A`, `3C`, `3D`, `3E`, `3F`, `3G`, `3H`, `3I`, `3J`, `3K`, `3L`, `3M`, `3N`, `3O`, `3P`, `3Q`, `3R`, `3S`, `3T`, `3U`, `3V`, `3W`, `3X`, `3Y`, `3Z`, `4A`, `4B`, `4C`, `4D`, `4E`, `4F`, `4G`, `4H`, `4I`, `4J`, `4L`, `4M`, `4N`, `4O`, `4P`, `4Q`, `4R`, `4S`, `4U`, `4V`, `4W`, `4X`, `4Y`, `4Z`, `5A`, `5B`, `5C`, `5D`, `5E`, `5F`, `5G`, `5H`, `5I`, `5J`, `5K`, `5L`, `5M`, `5N`, `5O`, `5P`, `5Q`, `5R`, `5S`, `5T`, `5U`, `5V`, `5W`, `5X`, `5Y`, `5Z`, `6A`, `6B`, `6C`, `6D`, `6E`, `6F`, `6G`, `6H`, `6I`, `6J`, `6K`, `6L`, `6M`, `6N`, `6O`, `6P`, `6Q`, `6R`, `6S`, `6U`, `6V`, `6W`, `6X`, `6Y`, `7C`, `13`, `17`, `28`, `30`, `36`, `40`, `43`, `44`, `61`, `71`, `72`, `73`, `74`, `77`, `80`, `82`, `84`, `85`, `87`, `95`, `CK`, `CZ`, `D2`, `DD`, `DJ`, `DK`, `DN`, `DO`, `DQ`, `E1`, `E2`, `E7`, `E9`, `FA`, `FD`, `FE`, `G0`, `G3`, `GB`, `GD`, `GI`, `GJ`, `GK`, `GM`, `GY`, `HF`, `HH`, `I3`, `IJ`, `IL`, `IN`, `LI`, `LR`, `MR`, `MSC`, `OB`, `OD`, `OX`, `P0`, `P2`, `P3`, `P4`, `P6`, `P7`, `PRP`, `PT`, `PV`, `PW`, `QA`, `QB`, `QC`, `QD`, `QE`, `QH`, `QK`, `QL`, `QN`, `QO`, `QS`, `QV`, `QY`, `RC`, `RW`, `S4`, `SEP`, `SJ`, `SU`, `T4`, `TL`, `TQ`, `TT`, `TTP`, `TU`, `UH`, `X3`, `X4`, `X5`, `ZZ` - **`claims[].serviceDetails[].status[].statusCategoryCode`** (`string`): The category code for the status. Visit [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) in the official X12 documentation for a complete list. - **`claims[].serviceDetails[].status[].statusCategoryCodeValue`** (`string`): The description of the `statusCategoryCode`. - **`claims[].serviceDetails[].status[].statusCode`** (`string`): The status code used to identify the status of an entire service line. This is either a [Health Care Claim Status Code](https://x12.org/codes/claim-status-codes) or a National Council for Prescription Drug Programs Reject/Payment Code, when the status is related to pharmacy claims. - **`claims[].serviceDetails[].status[].statusCodeValue`** (`string`): The description of the `statusCode`. - **`controlNumber`** (`string`): The control number the payer provided in the claim status response. This is used to identify the transaction. - **`dependent`** (`object`) - **`dependent.dateOfBirth`** (`string`): The dependent's date of birth. - **`dependent.firstName`** (`string`) (required): The dependent's first name as specified on their insurance policy. - **`dependent.gender`** (`string`): A code indicating the dependent's gender. If the claim set the dependent's gender to `U` for unknown, you should omit this property from the claim status request. - Allowed values: `M`, `F` - **`dependent.groupNumber`** (`string`): The group number associated with the subscriber and dependent's insurance policy. - **`dependent.lastName`** (`string`) (required): The dependent's last name as specified on their insurance policy. - **`dependent.suffix`** (`string`): The dependent's name suffix, such as Sr. or III. Only include the dependent's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`errorResponse`** (`object`) - **`errorResponse.code`** (`string`) - **`errorResponse.description`** (`string`) - **`errorResponse.errors`** (`array of ErrorDetail objects`) - **`errorResponse.errors[].code`** (`string`): The error code. - **`errorResponse.errors[].description`** (`string`): The description of the error code. - **`errorResponse.errors[].field`** (`string`): The attribute that caused the error. - **`errorResponse.errors[].followupAction`** (`string`): Follow-up actions to correct the error. - **`errorResponse.errors[].location`** (`string`): Where the error occurred within the request syntax. If this is a network or system error, there is no location attribute. - **`errorResponse.errors[].value`** (`string`): The value that caused the error. - **`errorResponse.transactionIdentifier`** (`object`) - **`errorResponse.transactionIdentifier.customerTransactionId`** (`string`) - **`errorResponse.transactionIdentifier.transactionId`** (`string`) - **`id`** (`string`): A globally unique identifier for this claim status check across all Stedi accounts. It's formatted as `csc_`. For example: `csc_550e8400-e29b-41d4-a716-446655440000`. You can use this ID to track this claim status check and to construct deep links to claim status checks in the Stedi portal. - **`implementationTransactionSetSyntaxError`** (`string`): The syntax error code in the 999 Implementation Acknowledgment. It indicates the type of error (if present) in the EDI request syntax. Visit `IK502` in the [Implementation Acknowledgment specification](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231/01HRF41ES1DVGCA6X1EHSRPFXZ#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.transaction_set_response_trailer_IK5.properties.implementation_transaction_set_syntax_error_code_02) for a complete list. - **`meta`** (`object`): Metadata about the response. - **`meta.applicationMode`** (`string`): Identifies where this request can be found for support. - **`meta.billerId`** (`string`): The biller ID assigned to this request. - **`meta.outboundTraceId`** (`string`): The transaction identifier in the outbound request's `BHT03` element that Stedi assigns. Although a unique identifier, instead of this property, we recommend using `id` to identify and track claims status checks. A claims status check's `id` is guaranteed to be globally unique, and you can use it to deep link to the claims status check's results within the Stedi portal. - **`meta.senderId`** (`string`): The sender ID assigned to this request. - **`meta.submitterId`** (`string`): The submitter ID assigned to this request. - **`meta.traceId`** (`string`): The transaction identifier in the response's `BHT03` element, taken from the request's `BHT03` element if provided, else a unique identifier that Stedi assigns that is also used as the `outboundTraceId`. - **`payer`** (`object`): Information about the payer listed in the referenced claim. - **`payer.centersForMedicareAndMedicaidServicePlanId`** (`string`): The payer's Health Plan ID (HPID) or Other Entity Identifier (OEID). - **`payer.contactInformation`** (`object`) - **`payer.contactInformation.electronicDataInterChangeAccessNumber`** (`string`): The payer's Electronic Data Interchange Access number. - **`payer.contactInformation.email`** (`string`): The payer's email address. - **`payer.contactInformation.fax`** (`string`): The payer's fax number, without separators. For example, `5551123345` for `555-112-3345` - **`payer.contactInformation.name`** (`string`): The payer contact name. - **`payer.contactInformation.phone`** (`string`): The payer's telephone number. Phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`payer.contactInformation.phoneExtension`** (`string`): The payer's telephone extension. - **`payer.organizationName`** (`string`): The payer's organization name. For example `UNITEDHEALTHCARE`. - **`payer.payerIdentification`** (`string`): The payer's identification number. This is the `tradingPartnerServiceId`. - **`providers`** (`array of StatusResponseProvider objects`): Information about the billing and/or service providers related to the referenced claim. - **`providers[].etin`** (`string`): The Electronic Transmitter Identification Number (ETIN). - **`providers[].firstName`** (`string`): The provider's first name. - **`providers[].lastName`** (`string`): The provider's last name. - **`providers[].npi`** (`string`): The [National Provider Identification (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) number. - **`providers[].organizationName`** (`string`): The provider's organization name. - **`providers[].providerType`** (`string`) (required): Identifies the type of provider related to the referenced healthcare claim. - Allowed values: `BillingProvider`, `ServiceProvider` - **`providers[].spn`** (`string`): The service provider number. - **`providers[].taxId`** (`string`): The Taxpayer Identification Number (TIN). - **`providers[].tin`** (`string`) - **`reassociationKey`** (`string`): The control number for the transaction. - **`status`** (`string`): The status of the entire claim. - **`subscriber`** (`object`): Information about the subscriber listed in the referenced claim. - You must set both the `dateOfBirth` and `gender` properties when the subscriber is the patient unless the gender is unknown. Stedi determines that the subscriber is the patient when the `dependent` object is not included in the request. - If either `dateOfBirth` or `gender` is set, you must include both properties unless the gender is unknown. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`subscriber.firstName`** (`string`) (required): The subscriber's first name as specified on their policy. - **`subscriber.gender`** (`string`): A code indicating the subscriber's gender. If the claim set the subscriber's gender to `U` for unknown, you should omit this property from the claim status request. - Allowed values: `M`, `F` - **`subscriber.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`subscriber.lastName`** (`string`) (required): The subscriber's last name as specified on their policy. The subscriber can be an individual or a business entity. - **`subscriber.memberId`** (`string`) (required): The subscriber's insurance member ID. This is the unique identifier for the subscriber on the insurance policy. - **`subscriber.suffix`** (`string`): The subscriber's name suffix, such as Jr., Sr., or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original claim status request. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`transactionSetAcknowledgement`** (`string`): The acknowledgment code in the 999 Implementation Acknowledgment, an EDI file generated by the payer to acknowledge receipt of the claim status request. It indicates whether the claim status request was accepted or rejected due to errors in the EDI request syntax. - **`warnings`** (`array of Warning objects`): Issues with your claim status request that could affect the results, or information about the response. For example, warnings can help explain why the request was rejected. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. - **`x12`** (`string`): The raw X12 response from the payer. **Example:** ```json { "claims": [ { "claimStatus": { "amountPaid": "108.77", "checkIssueDate": "2025-07-17", "checkNumber": "123456789", "claimServiceDate": "20250701", "effectiveDate": "2025-07-17", "paidDate": "2025-07-15", "patientAccountNumber": "12345678", "statusCategoryCode": "F1", "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.", "statusCode": "65", "statusCodeValue": "Claim/line has been paid.", "submittedAmount": "267.54", "trackingNumber": "0123456789", "tradingPartnerClaimNumber": "0123456789" }, "serviceDetails": [ { "service": { "amountPaid": "108.77", "procedureId": "90837", "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes", "serviceIdQualifierCode": "HC", "submittedAmount": "267.54", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-07-17", "statusCategoryCode": "F1", "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.", "statusCode": "107", "statusCodeValue": "Processed according to contract provisions (Contract refers to provisions that exist between the Health Plan and a Provider of Health Care Services)." } ] } ] } ], "controlNumber": "123456789", "payer": { "organizationName": "UNITEDHEALTHCARE", "payerIdentification": "87726" }, "providers": [ { "npi": "1999999984", "organizationName": "Provider Name", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "Jane", "lastName": "Doe", "memberId": "UHC123456" }, "tradingPartnerServiceId": "87726", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *250912*1718*^*00501*123456789*0*P*`~GS*HN*STEDI*117151744*20250912*171842*1*X*005010X212~ST*277*1001*005010X212~BHT*0010*08*0123456789*20250912*171841*DG~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*1234567890~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*0~NM1*IL*1*DOE*JANE****MI*UHC123456~TRN*2*0123456789~STC*F1`65*20250717**267.54*108.77*20250715**20250717*123456789~REF*1K*0123456789~REF*EJ*12345678~DTP*472*D8*20250701~SVC*HC`90837`GT*267.54*108.77****1~STC*F1`107*20250717~DTP*472*D8*20250701~SE*19*1001~GE*1*1~IEA*1*123456789~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Professional Claims (837P) Raw X12 Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-claims-raw-x12 This endpoint is ideal if you have an existing system that generates X12 EDI files and you want to send them through Stedi. 1. Call this endpoint with a payload in [837 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-professional-x222a1/01HR60MDFAGCSEJNKY8J38867Y). 2. Stedi validates the EDI and sends the claim to the payer. 3. The endpoint returns a response from Stedi in JSON format containing information about the claim you submitted and whether the submission was successful. ## Claim identifier [#claim-identifier] `Loop 2300 REF02` (Claim Identifier for Transmission Intermediaries) has different usage rules depending on your role: - **Providers:** Don't include `Loop 2300 REF02` when `REF01` = `D9` in your claim submission. It's reserved for clearinghouses and intermediaries. You can use `Loop 2300 CLM01` (Patient Control Number) to correlate claims with responses instead. - **Clearinghouses and intermediaries:** You can optionally include `REF*D9` in your 837 submissions. Stedi always returns this value in `Loop 2200D REF*D9` of 277CA claim acknowledgments, allowing you to match these responses to the claim. ## CMS-1500 Claim Form PDF [#cms-1500-claim-form-pdf] When you submit a professional claim, Stedi automatically generates a [1500 claim form](https://www.nucc.org/index.php/1500-claim-form-mainmenu-35) PDF. If you plan to send these PDFs to payers or retain them for your records, we strongly recommend reviewing the [CMS-1500 claim form PDF](/healthcare/cms-1500-claim-form-pdf) documentation to learn how to structure claim submissions for optimal generation, the correct printer settings for generated PDFs, and general best practices. ## API Specification Submit an 837P professional claim in raw X12 EDI format **Endpoint:** `POST /change/medicalnetwork/professionalclaims/v3/raw-x12-submission` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents you from sending duplicate claims due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `ClaimsRawX12SubmissionRequestContent` **Properties:** - **`x12`** (`string`) (required) **Example:** ```json { "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~NM1*41*2*Test Data Health Services, Inc.*****46*123435~PER*IC**TE*5552223333~NM1*40*2*Cigna*****46*62308~HL*1**20*1~PRV*BI*PXC*2084P0800X~NM1*85*2*Therapy Associates*****XX*1999999984~N3*123 Some St*Floor 1~N4*A City*NY*123450000~REF*EI*123456789~PER*IC*Test Data Health Services, Inc.*TE*5553334444~HL*2*1*22*0~SBR*P*18*3335555******CI~NM1*IL*1*Anon*John****MI*U7777788888~N3*2222 Random St~N4*A City*NY*123450000~DMG*D8*20000101*M~NM1*PR*2*Cigna*****PI*62308~CLM*123456789*109.2***02>B>1*Y*A*Y*Y~HI*ABK>F1111~NM1*77*2*Smith Associates~N3*1234 Other St~N4*A City*NY*123450000~LX*1~SV1*HC>90837>95*109.2*UN*1***1~DTP*472*D8*20240101~REF*6R*111222333~SE*29*0001~GE*1*39~IEA*1*000000039~" } ``` ### Responses #### 200 ClaimsRawX12Submission 200 response **Schema:** `ClaimsRawX12SubmissionResponseContent` **Properties:** - **`claimReference`** (`object`): Information about the claim. - **`claimReference.claimType`** (`string`): This shape is deprecated: Currently not used. - **`claimReference.correlationId`** (`string`): An identifier Stedi assigns to the claim. - **`claimReference.customerClaimNumber`** (`string`): A tracking number that Stedi assigns to the claim. - **`claimReference.formatVersion`** (`string`): The X12 EDI version Stedi used to generate the claim for the payer. This is always `5010`. - **`claimReference.patientControlNumber`** (`string`): The `patientControlNumber` from the original request, if supplied. This is a unique identifier that you assign to the claim so you can track the claim and correlate it with responses from the payer. - **`claimReference.payerID`** (`string`): This shape is deprecated: Please use payerId. - **`claimReference.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`claimReference.rhclaimNumber`** (`string`): A tracking number Stedi assigns to the claim. This is the same as the `correlationId`. - **`claimReference.serviceLines`** (`array of ServiceLineResponseIdentifier objects`): Contains a unique identifier for each service line, listed in the order the service lines were included in the claim. You can use these identifiers to correlate payer responses to specific service lines. - **`claimReference.serviceLines[].lineItemControlNumber`** (`string`): A unique identifier for the service line, matching the value provided for the `claimInformation.serviceLines[].providerControlNumber` property in the claim submission. If you didn't provide a value for `providerControlNumber`, this property contains a randomly generated ULID for the service line. - **`claimReference.submitterId`** (`string`): Stedi's ID for the entity that submitted the claim. - **`claimReference.timeOfResponse`** (`string`): A timestamp for Stedi's response to the claim submission. - **`controlNumber`** (`string`): An identifier for the transaction. - **`editResponses`** (`array of EditResponse objects`): Currently not used. - **`editResponses[].allowOverride`** (`string`) - **`editResponses[].badData`** (`string`) - **`editResponses[].claimCorePath`** (`string`) - **`editResponses[].editActivity`** (`string`) - **`editResponses[].editName`** (`string`) - **`editResponses[].element`** (`string`) - **`editResponses[].errorDescription`** (`string`) - **`editResponses[].fieldIndex`** (`string`) - **`editResponses[].loop`** (`string`) - **`editResponses[].phaseID`** (`string`) - **`editResponses[].qualifierCode`** (`string`) - **`editResponses[].referenceID`** (`string`) - **`editResponses[].segment`** (`string`) - **`editStatus`** (`string`): This shape is deprecated: Currently not used. - **`errors`** (`array of ClaimsError objects`): Errors resulting from claim edits. You must review and fix these errors before resubmitting. - **`errors[].code`** (`string`): The error code. - **`errors[].description`** (`string`): The description of the error code. - **`errors[].followupAction`** (`string`): Recommended followup actions to correct the error. - **`errors[].location`** (`string`): Where the error is located in the original request. - **`errors[].value`** (`string`): The value for the data causing the error. - **`failure`** (`object`): Currently not used. - **`failure.code`** (`string`) - **`failure.description`** (`string`) - **`httpStatusCode`** (`string`): Stedi can return the following status codes: - `200`: Stedi successfully generated the X12 EDI claim format required by the payer. It does not indicate whether the payer has accepted the claim - the payer will respond later with a 277CA containing this information. [Learn more about 277CAs](https://www.stedi.com/docs/healthcare/receive-claim-responses#response-types). - `400`: The request contains one or more problems with the claim data. Examples include missing required fields, invalid values, or incorrect data types. The response includes a message describing the problem. - `403`: The request is not permitted, such as using a test API key to submit a production transaction. - Allowed values: `200 OK`, `400 BAD_REQUEST`, `403 FORBIDDEN` - **`meta`** (`object`): Metadata from Stedi about the request. - **`meta.applicationMode`** (`string`): Indicates where this request can be found for support. - **`meta.billerId`** (`string`): The biller ID assigned to this request. - **`meta.senderId`** (`string`): The sender ID assigned to this request. - **`meta.submitterId`** (`string`): The submitter ID assigned to this request. - **`meta.traceId`** (`string`): The file execution ID, a unique identifier assigned to the processed file within the Stedi platform. - **`payer`** (`object`): Information about the payer for the submitted claim. - **`payer.payerID`** (`string`): This shape is deprecated: Please use payerId. - **`payer.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`payer.payerName`** (`string`): The payer's business name, such as Aetna or Cigna. - **`status`** (`string`): The status of the claim submission. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original claim. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`warnings`** (`array of ClaimsWarning objects`): A list of warnings. Currently not used. - **`warnings[].code`** (`string`): A machine-readable code indicating the type of problem. - **`warnings[].description`** (`string`): A human-readable description of the problem. - **`x12`** (`string`): A [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/claim-responses-overview#277ca-claim-acknowledgment) acceptance or rejection from Stedi in X12 EDI format. It indicates whether the claim has passed Stedi's claim edits. When the claim fails one or more edits, the 277CA contains `STC` segments with information about each error. These are the same error codes that appear in the `errors` array. Note that this 277CA only indicates whether Stedi has accepted or rejected the claim submission. You may receive additional 277CA acceptances or rejections as the claim is routed to the payer. **Example:** ```json { "claimReference": { "correlationId": "01J1M588QT2TAV2N093GNJ998T", "formatVersion": "5010", "patientControlNumber": "22266555", "payerId": "60054", "rhclaimNumber": "01J1M588QT2TAV2N093GNJ998T", "serviceLines": [ { "lineItemControlNumber": "111222333" } ], "timeOfResponse": "2024-07-10T22:05:32.203Z" }, "controlNumber": "000000001", "httpStatusCode": "200 OK", "meta": { "traceId": "b727b8e7-1f00-4011-bc6e-e41444d406d8" }, "payer": { "payerId": "60054", "payerName": "Cigna" }, "status": "SUCCESS", "tradingPartnerServiceId": "60054", "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*1951*^*00501*980180479*0*T*>~GS*HN*STEDITEST*574183004559*20260213*195151*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC8YJE8EY6A5HFR00Z5H305*20260213*195151*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC8YJE8EY6A5HFR00Z5H305~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Data Health Services, Inc.*****46*123456~TRN*2*01KHC8Y4HNP0GVQ5NSVTPZBC0F~STC*A0>17>AY*20260213*WQ*109.2~QTY*90*1~AMT*YU*109.2~HL*3*2*19*1~NM1*85*2*Therapy Associates*****XX*1234567890~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*109.2~HL*4*3*PT*0~NM1*QC*1*Anon*John****MI*U7777788888~TRN*2*111222333~STC*A1>20*20260213*WQ*109.2~DTP*472*RD8*20240101-20240101~SE*25*0001~GE*1*1~IEA*1*980180479~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 422 RequestChangedException 422 response **Schema:** `RequestChangedExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of error. - **`message`** (`string`) (required): Human readable error message explaining why the request was rejected. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Professional Claims (837P) JSON - Legacy Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-claims This is a legacy endpoint. We won't deprecate it, and you can continue using it in production. If you're building a new integration, or prefer the new schema, we recommend using [Create Professional Claim (CMS-1500) JSON](/healthcare/api-reference/post-create-professional-claim-json). Of course, you're free to upgrade at any time. This endpoint sends 837P professional claims to payers. 1. Call this endpoint with a JSON payload. 2. Stedi translates your request to the X12 837 EDI format and sends it to the payer. 3. The endpoint returns a response from Stedi in JSON format containing information about the claim you submitted and whether the submission was successful. ## CMS-1500 Claim Form PDF [#cms-1500-claim-form-pdf] When you submit a professional claim, Stedi automatically generates a [1500 claim form](https://www.nucc.org/index.php/1500-claim-form-mainmenu-35) PDF. If you plan to send these PDFs to payers or retain them for your records, we strongly recommend reviewing the [CMS-1500 claim form PDF](/healthcare/cms-1500-claim-form-pdf) documentation to learn how to structure claim submissions for optimal generation, the correct printer settings for generated PDFs, and general best practices. ## API Specification Submit an 837P professional claim in JSON format **Endpoint:** `POST /change/medicalnetwork/professionalclaims/v3/submission` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents you from sending duplicate claims due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `ClaimsSubmissionRequestContent` **Properties:** - **`billing`** (`object`) (required): Information about the billing provider. - You must provide an `address` that is a physical location such as the office where care is delivered or an administrative facility. - For tax identification, you must include either the provider's Social Security Number (SSN) in the `ssn` property _or_ their Employer Identification Number (EIN) in the `employerId` property, but not both. - If the billing provider has an NPI, you must include it in the `npi` property. If the billing provider does not have an NPI, you must include either the `commercialNumber` or the `locationNumber` for identification. Some payers may require the `npi` **and** either the `commercialNumber` or the `locationNumber` as a secondary identifier. - Some solo providers may use their SSN as their EIN. In this case, submit the SSN in the `ssn` property and leave the `employerId` property blank. - **`billing.address`** (`object`) - **`billing.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billing.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billing.address.city`** (`string`) (required): The city name. - **`billing.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`billing.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`billing.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`billing.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`billing.claimOfficeNumber`** (`string`): Claim Office Number. - **`billing.commercialNumber`** (`string`): The billing provider's commercial number, as assigned by this payer. The commercial number is a unique identifier that the payer assigns to the provider. For providers without an NPI, you must provide either the `commercialNumber` or the `locationNumber` for identification. - **`billing.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`billing.contactInformation.email`** (`string`): The email address. - **`billing.contactInformation.faxNumber`** (`string`): The fax number. - **`billing.contactInformation.name`** (`string`): The full name of the person or office. - **`billing.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`billing.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`billing.employerId`** (`string`): The billing provider's Employer Identification Number (EIN). Typically a string of exactly nine numbers with no separators, unless otherwise instructed by the payer. If you include this value, you cannot include the `ssn`. - **`billing.firstName`** (`string`): The billing provider's first name, if the provider is an individual. - **`billing.lastName`** (`string`): The provider's last name, if the provider is an individual. - **`billing.locationNumber`** (`string`): The billing provider's location number. For providers without an NPI, you must provide either the `commercialNumber` or the `locationNumber` for identification. - **`billing.middleName`** (`string`): The provider's middle name or initial, if the provider is an individual. - **`billing.naic`** (`string`): National Association of Insurance Commissioners (NAIC) Code. - **`billing.npi`** (`string`): The billing provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). Optional. When the billing provider is not assigned an NPI, supply `commercialNumber` or `locationNumber` instead. - **`billing.organizationName`** (`string`): The provider's business name. - **`billing.payerIdentificationNumber`** (`string`): Payer Identification Number. - **`billing.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`billing.providerUpinNumber`** (`string`): Deprecated; do not use. - **`billing.ssn`** (`string`): The billing provider's Social Security Number. Must be a string of exactly nine numbers with no separators. If you include this value, you cannot include the `employerId`. - **`billing.stateLicenseNumber`** (`string`): The billing provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`billing.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`billing.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the billing provider's type and/or area of specialty. - **`claimIdentifier`** (`string`): A code specifying the type of transaction. Defaults to `CH` if not provided. - `31`: Only for use by state Medicaid agencies performing post payment recovery. - `CH`: Use when the transaction contains only fee for service claims or claims with at least one chargeable line item. Also use when it's not clear whether a transaction contains claims or capitated encounters, or if the transaction contains a mix of claims and capitated encounters. - `RP`: Use for capitated encounters. Also use when the transaction is being sent to an entity for purposes other than adjudication of a claim. For example, when you're sending the claim to a state health agency that is using the claim for health data reporting purposes. - Allowed values: `31`, `CH`, `RP` - **`claimInformation`** (`object`) (required): Information about the healthcare claim. Note that the objects and properties marked as **required** are required for all claims, while others are conditionally required, depending on type of claim and claim circumstances. For example, you must always provide the patient's diagnosis codes in the `healthCareCodeInformation` object, but you only need to provide the `otherSubscriberInformation` object in coordination of benefits scenarios. When you include a conditionally required object, you must provide all of its required properties. - **`claimInformation.ambulanceCertification`** (`array of AmbulanceCertification objects`): Required when the claim involves ambulance transport services. - **`claimInformation.ambulanceCertification[].certificationConditionIndicator`** (`string`) (required): Code indicating whether there is an ambulance certification. - Allowed values: `N`, `Y` - **`claimInformation.ambulanceCertification[].conditionCodes`** (`array of strings`) (required) - **`claimInformation.ambulanceDropOffLocation`** (`object`) - **`claimInformation.ambulanceDropOffLocation.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.ambulanceDropOffLocation.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.ambulanceDropOffLocation.city`** (`string`) (required): The city name. - **`claimInformation.ambulanceDropOffLocation.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.ambulanceDropOffLocation.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.ambulanceDropOffLocation.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.ambulanceDropOffLocation.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.ambulancePickUpLocation`** (`object`) - **`claimInformation.ambulancePickUpLocation.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.ambulancePickUpLocation.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.ambulancePickUpLocation.city`** (`string`) (required): The city name. - **`claimInformation.ambulancePickUpLocation.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.ambulancePickUpLocation.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.ambulancePickUpLocation.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.ambulancePickUpLocation.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.ambulanceTransportInformation`** (`object`): Information about the ambulance service provided to the patient. - **`claimInformation.ambulanceTransportInformation.ambulanceTransportReasonCode`** (`string`) (required): Code indicating the reason for ambulance transport. For example, `A` - Patient was transported to nearest facility for care of symptoms, complaints, or both. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#ambulance-transport-reason-codes) for a complete list. - Allowed values: `A`, `B`, `C`, `D`, `E` - **`claimInformation.ambulanceTransportInformation.patientWeightInPounds`** (`string`): The weight of the patient, in pounds, at the time of transport. Provide this value as a decimal, such as `150.5` - **`claimInformation.ambulanceTransportInformation.roundTripPurposeDescription`** (`string`): The reason for the round trip ambulance service. - **`claimInformation.ambulanceTransportInformation.stretcherPurposeDescription`** (`string`): The reason for usage of a stretcher during ambulance service. - **`claimInformation.ambulanceTransportInformation.transportDistanceInMiles`** (`string`) (required): The number of miles the ambulance traveled to transport the patient. Provide this value as a decimal, such as `20.5`. Note that `0` (zero) is a valid value when ambulance services do not include a charge for mileage. - **`claimInformation.anesthesiaRelatedSurgicalProcedure`** (`array of strings`): The surgical code. Required on claims where anesthesiology services are being billed or reported when the provider knows the surgical code and knows the adjudication of the claim will depend on provision of the surgical code. - **`claimInformation.autoAccidentCountryCode`** (`string`): The country code where the accident occurred. Use when `relatedCausesCode` = `AA` and the accident occurred in a country other than US or Canada. - **`claimInformation.autoAccidentStateCode`** (`string`): A code identifying the state or province in which the automobile accident occurred. Use this code when `relatedCausesCode` is set to `AA`. - **`claimInformation.benefitsAssignmentCertificationIndicator`** (`string`) (required): A code indicating whether the patient or an authorized person has authorized the plan to remit payment directly to the provider. Use `W` when the patient refuses to assign benefits. Can be set to `N` - No (Payment should go to the patient), `Y` - Yes (Payment should go directly to the provider), or `W` - Not Applicable (use when patient refuses to assign benefits). - Allowed values: `N`, `W`, `Y` - **`claimInformation.claimChargeAmount`** (`string`) (required): The total dollar amount charged for the services on this claim, expressed as a decimal. For example, `100.50`. This is the total amount before any adjustments or payments. The amount must balance to the sum of the service line charges. - **`claimInformation.claimContractInformation`** (`object`): Required when the submitter is contractually obligated to supply this information on post-adjudicated claims. - **`claimInformation.claimContractInformation.contractAmount`** (`string`): The total dollar amount of the contract, expressed as a decimal. For example, `100.50`. - **`claimInformation.claimContractInformation.contractCode`** (`string`): The contract code. This is a unique identifier for the contract. - **`claimInformation.claimContractInformation.contractPercentage`** (`string`): The allowance or charge percent, expressed as a decimal. For example, `0.80`. - **`claimInformation.claimContractInformation.contractTypeCode`** (`string`) (required): A code identifying the type of contract. Can be set to `01` - Diagnosis Related Group (DRG), `02` - Per Diem, `03` - Variable Per Diem, `04` - Flat, `05` - Capitated, `06` - Percent, or `09` - Other. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `09` - **`claimInformation.claimContractInformation.contractVersionIdentifier`** (`string`): An additional identifer for the contract. Identifies the revision level of a particular format, program, technique or algorithm. - **`claimInformation.claimContractInformation.termsDiscountPercentage`** (`string`): Terms discount percentage, expressed as a percent, available to the purchaser if an invoice is paid on or before the Terms Discount Due Date. - **`claimInformation.claimDateInformation`** (`object`): You must provide at least one date related to the claim. For example, the date on which the patient was admitted to the hospital. - **`claimInformation.claimDateInformation.accidentDate`** (`string`): The date of the accident related to this claim. Required when `relatedCausesCode` is set to `AA` - Auto Accident or `OA` - Other Accident. Also required when `relatedCausesCode` is set to `EM` - Employment and this claim is the result of an accident. - **`claimInformation.claimDateInformation.acuteManifestationDate`** (`string`): The date the patient first experienced acute symptoms for a chronic condition. Required when the `patientConditionCode` = `A` (Acute Condition) or `M` (Acute Manifestation of a Chronic Condition), the claim involves spinal manipulation, and the payer is Medicare. - **`claimInformation.claimDateInformation.admissionDate`** (`string`): The date the patient was admitted to the hospital. Required on ambulance claims when the patient was known to be admitted to the hospital. Also required on inpatient claims. - **`claimInformation.claimDateInformation.assumedAndRelinquishedCareBeginDate`** (`string`): The date the provider filing this claim assumed care from another provider during post-operative care. Required when providers share post-operative care (global surgery claims). - **`claimInformation.claimDateInformation.assumedAndRelinquishedCareEndDate`** (`string`): The date the provider filing this claim relinquished post-operative care to another provider. Required when providers share post-operative care (global surgery claims). - **`claimInformation.claimDateInformation.authorizedReturnToWorkDate`** (`string`): The date the provider has authorized the patient to return to work. Required on claims where this information is necessary for adjudication, such as workers compensation claims. - **`claimInformation.claimDateInformation.disabilityBeginDate`** (`string`): The start date of the patient's disability period. You can include this date without providing a `disabilityEndDate` if the patient is currently disabled and the end date is unknown. Used for claims involving disability where the provider judges that the patient was or will be unable to perform the duties normally associated with their work. - **`claimInformation.claimDateInformation.disabilityEndDate`** (`string`): The end date of the patient's disability period. You can include this date without including a `disabilityStartDate` if the patient is no longer disabled and the start date is unknown. Used for claims involving disability where the provider judges that the patient was or will be unable to perform the duties normally associated with their work. - **`claimInformation.claimDateInformation.dischargeDate`** (`string`): The date the patient was discharged from the hospital. Required for inpatient claims when the patient was discharged from the facility and the discharge date is known - **`claimInformation.claimDateInformation.firstContactDate`** (`string`): Date the patient first consulted the provider for their condition by any means. This is not necessarily the same as the initial treatment date. Required for Property and Casualty claims when state mandated. - **`claimInformation.claimDateInformation.hearingAndVisionPrescriptionDate`** (`string`): The date of the patient's hearing and vision prescription. Required on claims where a prescription has been written for hearing devices or vision frames and lenses and it is being billed on this claim. - **`claimInformation.claimDateInformation.initialTreatmentDate`** (`string`): The date the patient first received treatment for the current illness or condition. Required when the Initial Treatment Date is known to impact adjudication for claims involving spinal manipulation, physical therapy, occupational therapy, speech language pathology, dialysis, optical refractions, or pregnancy. - **`claimInformation.claimDateInformation.lastMenstrualPeriodDate`** (`string`): The date of the patient's last menstrual period. Required when the provider believes the services on this claim are related to the patient's pregnancy. - **`claimInformation.claimDateInformation.lastSeenDate`** (`string`): The date that the patient was seen by the attending or supervising physician for the qualifying medical condition related to the services performed. Required when claims involve services for routine foot care and this date is known to impact the payer's adjudication process. - **`claimInformation.claimDateInformation.lastWorkedDate`** (`string`): The date the patient last worked, related to disability claims. Required on claims where this information is necessary for adjudication, such as workers compensation claims. - **`claimInformation.claimDateInformation.lastXRayDate`** (`string`): The date of the patient's last x-ray. Required when claim involves spinal manipulation and an x-ray was taken. - **`claimInformation.claimDateInformation.repricerReceivedDate`** (`string`): The date the repricing entity received the initial claim. Required when a repricer is passing the claim onto the payer. - **`claimInformation.claimDateInformation.symptomDate`** (`string`): The date the patient began experiencing acute symptoms for the current illness or condition. Required for the initial medical service or visit performed in response to a medical emergency when the date is available and is different than the date of service. - **`claimInformation.claimFilingCode`** (`string`) (required): A code identifying the type of claim. For example `DS` - Disability. - Use `OF` when submitting Medicare Part D claims. - Use `ZZ` when you don't know the type of insurance. - Some payers reject claims with invalid codes. If you're not sure which code to use, we recommend running a [real-time eligibility check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) and using the value returned in the most relevant `benefitsInformation.insuranceTypeCode` property. Note that the eligibility response uses a different code list than claims, so you may need to map that code value to the appropriate claim filing code. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-filing-indicator-codes) for a complete list. - Allowed values: `11`, `12`, `13`, `14`, `15`, `16`, `17`, `AM`, `BL`, `CH`, `CI`, `DS`, `FI`, `HM`, `LM`, `MA`, `MB`, `MC`, `OF`, `TV`, `VA`, `WC`, `ZZ` - **`claimInformation.claimFrequencyCode`** (`string`) (required): Identify the type of claim. Can be set to: `1` - indicates an original claim, `7` - Indicates the new claim is a replacement or correction, `8` - Indicates the claim is void or canceled - Allowed values: `1`, `7`, `8` - **`claimInformation.claimNote`** (`object`): Comments or special instructions related to the claim. Contains information required to substantiate the medical treatment that isn't provided elsewhere in the claim. - **`claimInformation.claimNote.additionalInformation`** (`string`): Additional information. - **`claimInformation.claimNote.certificationNarrative`** (`string`): Certification narrative. - **`claimInformation.claimNote.diagnosisDescription`** (`string`): Additional information about the diagnosis. - **`claimInformation.claimNote.goalRehabOrDischargePlans`** (`string`): Information about goals, rehabilitation potential, or discharge plans. - **`claimInformation.claimNote.thirdPartOrgNotes`** (`string`): Notes from a third-party organization. - **`claimInformation.claimPricingRepricingInformation`** (`object`): Repricing information to be completed by repricers, not providers. For capitated encounters, pricing or repricing information usually is not applicable and is provided to qualify other information within the claim. - **`claimInformation.claimPricingRepricingInformation.exceptionCode`** (`string`): Code specifying the exception reason for consideration of out-of-network health care services. This is the reason generated by the third-party health organization. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#exception-codes-2) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6` - **`claimInformation.claimPricingRepricingInformation.policyComplianceCode`** (`string`) - Allowed values: `1`, `2`, `3`, `4`, `5` - **`claimInformation.claimPricingRepricingInformation.pricingMethodologyCode`** (`string`) (required): Code indicating the pricing or repricing methodology. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#pricing-methodology-codes-2) for a complete list. - Allowed values: `00`, `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14` - **`claimInformation.claimPricingRepricingInformation.rejectReasonCode`** (`string`) - Allowed values: `T1`, `T2`, `T3`, `T4`, `T5`, `T6` - **`claimInformation.claimPricingRepricingInformation.repricedAllowedAmount`** (`string`) (required): The dollar amount, expressed as a decimal. For example, `100.50`. - **`claimInformation.claimPricingRepricingInformation.repricedApprovedAmbulatoryPatientGroupAmount`** (`string`): The dollar amount, expressed as a decimal. - **`claimInformation.claimPricingRepricingInformation.repricedApprovedAmbulatoryPatientGroupCode`** (`string`): The code indicating the type of repricing. - **`claimInformation.claimPricingRepricingInformation.repricedSavingAmount`** (`string`): The dollar amount, expressed as a decimal. - **`claimInformation.claimPricingRepricingInformation.repricingOrganizationIdentifier`** (`string`): The identifier of the organization that repriced the claim. - **`claimInformation.claimPricingRepricingInformation.repricingPerDiemOrFlatRateAmount`** (`string`): The pricing rate associated with per diem or flat rate repricing, expressed as a decimal. - **`claimInformation.claimSupplementalInformation`** (`object`): Additional information or documentation required for the claim. This is where you can include information about [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments), if applicable. - **`claimInformation.claimSupplementalInformation.adjustedRepricedClaimNumber`** (`string`): Required when the repricer believes this information is necessary. Providers should not complete this property. - **`claimInformation.claimSupplementalInformation.carePlanOversightNumber`** (`string`): Required when the physician is billing Medicare for Care Plan Oversight (CPO). This is the number of the home health agency or hospice providing Medicare covered services to the patient. - **`claimInformation.claimSupplementalInformation.claimControlNumber`** (`string`): This is the Payer Claim Control Number (PCCN) for an existing claim that this claim is meant to replace or cancel. This property is generally **required** when the `claimInformation.claimFrequencyCode` is set to `7` or `8`. One exception to this guidance is Original Medicare, which specifies that you omit the PCCN from resubmissions. Visit [Resubmit or cancel claims](https://www.stedi.com/docs/healthcare/resubmit-cancel-claims) for complete details and information about where to find the PCCN for an existing claim. - **`claimInformation.claimSupplementalInformation.claimNumber`** (`string`): The claim number assigned by clearinghouse, van, etc. Stedi overwrites this value when it sends the claim to the payer, so you shouldn't include this property in your request. We strongly recommend using the `claimInformation.patientControlNumber` property as your claim tracking ID. - **`claimInformation.claimSupplementalInformation.cliaNumber`** (`string`): Required for all CLIA certified facilities performing CLIA covered laboratory services. When this claim contains both in-house and outsourced laboratory services, use the CLIA Number for laboratory services performed by the billing or rendering provider. You can report outsourced laboratory services in the `serviceLines` object. - **`claimInformation.claimSupplementalInformation.demoProjectIdentifier`** (`string`): Required when it is necessary to identify claims that are atypical in ways such as content, purpose, and/or payment. For example, claims made as the result of a demonstration or a clinical trial. - **`claimInformation.claimSupplementalInformation.investigationalDeviceExemptionNumber`** (`string`): Required when claim involves a Food and Drug Administration (FDA) assigned investigational device exemption (IDE) number. When more than one IDE applies, you must split into separate claims. - **`claimInformation.claimSupplementalInformation.mammographyCertificationNumber`** (`string`): Required when mammography services are rendered by a certified mammography provider. - **`claimInformation.claimSupplementalInformation.medicalRecordNumber`** (`string`): Required when the provider needs to identify the actual medical record of the patient for this episode of care. - **`claimInformation.claimSupplementalInformation.medicareCrossoverReferenceId`** (`string`): Required when the submitter is Medicare and the claim is a Medigap or COB crossover claim. - **`claimInformation.claimSupplementalInformation.priorAuthorizationNumber`** (`string`): Required when an authorization number is assigned by the payer or UMO _and_ the services on this claim were preauthorized. The UMO (Utilization Management Organization) is generally the entity empowered to make a decision regarding the outcome of a health services review or the owner of information. If there are multiple prior authorization numbers associated with this claim, send one here and then override it as necessary for each service line in `claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization`. - **`claimInformation.claimSupplementalInformation.referralNumber`** (`string`): Required when a referral number is assigned by the payer or Utilization Management Organization (UMO) _and_ a referral is involved. - **`claimInformation.claimSupplementalInformation.reportInformation`** (`object`) - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. Set this to `EL` when you plan to submit attachments electronically through Stedi APIs. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.claimSupplementalInformation.reportInformations`** (`array of ReportInformation objects`): An array of report information for the claim. Use this when you need to submit multiple report information records. You can submit up to 10 objects in this array. Required when you plan to submit [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for the claim electronically through Stedi APIs or SFTP, when there is a paper attachment following this claim, or when the provider deems it necessary to identify that they have additional information at their office that is available upon request. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. Set this to `EL` when you plan to submit attachments electronically through Stedi APIs. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.claimSupplementalInformation.repricedClaimNumber`** (`string`): Required when the repricer believes this information is necessary. Providers should not complete this property. - **`claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode`** (`string`): Code indicating the reason for the service authorization exception. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#service-authorization-exception-codes) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7` - **`claimInformation.conditionInformation`** (`array of ConditionInformation objects`): Required when condition information applies to the claim. You can include up to 24 codes in the array. Visit the National Uniform Claim Committee for a complete list of possible [condition codes](https://www.nucc.org/index.php/code-sets-mainmenu-41/condition-codes-mainmenu-38). - **`claimInformation.conditionInformation[].conditionCodes`** (`array of strings`) (required): An array of condition codes. - **`claimInformation.deathDate`** (`string`): The patient's date of death, formatted as `YYYYMMDD`. - **`claimInformation.delayReasonCode`** (`string`): Code indicating the reason for the delay in claim submission. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#delay-reason-codes) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `15` - **`claimInformation.epsdtReferral`** (`object`): Required on Early & Periodic Screening, Diagnosis, and Treatment (EPSDT) claims when the screening service is being billed in this claim. - **`claimInformation.epsdtReferral.certificationConditionCodeAppliesIndicator`** (`string`) (required): Code indicating whether an EPSDT referral was given to the patient. Can be set to `N` - No or `Y` - Yes. - Allowed values: `N`, `Y` - **`claimInformation.epsdtReferral.conditionCodes`** (`array of strings`) (required): Code indicating the patient's status. Set to `AV` when the patient refused the referral. Set to `NU` when you set `certificationConditionCodeAppliesIndicator` to `N`. Set to `S2` when the patient is currently under treatment for the referred diagnostic or corrective health problem. Set to `ST` when _either_ the patient is referred to another provider for diagnostic or corrective treatment for at least one health problem identified during an initial or periodic screening service (not including dental referrals) _or_ the patient is scheduled for another appointment with the screening provider for diagnostic or corrective treatment for at least one health problem identified during an initial or periodic screening service (not including dental referrals). - **`claimInformation.fileInformation`** (`string`): Please use the `fileInformationList` array instead. - **`claimInformation.fileInformationList`** (`array of strings`): An array of additional information items the payer requested. Not commonly used. - **`claimInformation.healthCareCodeInformation`** (`array of ClaimsHealthCareInformation objects`) (required): Details about the patient's healthcare diagnosis. - Use `ABK` as the type for the principal diagnosis code and `ABF` for any other diagnosis codes you include. - One `ABK` code is required as the first object, and then you can submit up to 11 `ABF` codes as needed. If you need to submit more codes than this, you must create additional, separate claims. - **`claimInformation.healthCareCodeInformation[].diagnosisCode`** (`string`) (required): The diagnosis code. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - **Don't** submit the decimal point for ICD codes. The decimal point is implied. - **Don't** submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the [Value Set Authority Center](https://vsac.nlm.nih.gov/context/cs). If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`claimInformation.healthCareCodeInformation[].diagnosisTypeCode`** (`string`) (required): Code indicating the specific industry code list. Can be set to `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `ABF` - International Classification of Diseases Clinical Modification (ICD-10-CM) Diagnosis. - Allowed values: `BK`, `ABK`, `BF`, `ABF` - **`claimInformation.homeboundIndicator`** (`boolean`): Required for Medicare claims when an independent laboratory renders an EKG tracing or obtains a specimen from a homebound or institutionalized patient. - **`claimInformation.otherSubscriberInformation`** (`array of OtherSubscriberInformation objects`): Required when other payers are known to potentially be involved in paying on this claim. This object contains information about other health plans under which the patient has coverage. It's used for coordination of benefits scenarios. - **`claimInformation.otherSubscriberInformation[].benefitsAssignmentCertificationIndicator`** (`string`) (required): Code indicating whether or not the insured has authorized the plan to remit payment directly to the provider. Can be set to `N` - No (Payment should go to the patient), `Y` - Yes (Payment should go directly to the provider), or `W` - Not Applicable. - Allowed values: `N`, `W`, `Y` - **`claimInformation.otherSubscriberInformation[].claimFilingIndicatorCode`** (`string`) (required): A code identifying the type of claim. For example `DS` - Disability. Use `OF` when submitting Medicare Part D claims. Use `ZZ` when you don't know the type of insurance. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-filing-indicator-codes) for a complete list. - Allowed values: `11`, `12`, `13`, `14`, `15`, `16`, `17`, `AM`, `BL`, `CH`, `CI`, `DS`, `FI`, `HM`, `LM`, `MA`, `MB`, `MC`, `OF`, `TV`, `VA`, `WC`, `ZZ` - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments`** (`array of ClaimAdjustment objects`): Use this object to report prior payers' claim level adjustments that cause the amount paid to differ from the amount originally charged. Codes and associated amounts must come from either paper remittance advice or 835s (Electronic Remittance Advice) received on the claim. When the information originates from a paper remittance advice that does not use the standard Claim Adjustment Reason Codes, you must convert them to standard Claim Adjustment Reason Codes. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails`** (`array of ClaimAdjustmentDetails objects`) (required) - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails[].adjustmentAmount`** (`string`) (required): The dollar amount of the adjustment, expressed as a decimal. For example, `100.50`. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails[].adjustmentQuantity`** (`string`): The units of service being adjusted. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails[].adjustmentReasonCode`** (`string`) (required): Code identifying the detailed reason the adjustment was made. Visit the X12 [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) for a complete list. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentGroupCode`** (`string`) (required): Code identifying the general category of payment adjustment. Can be set to `CO` - Contractual Obligations, `CR` - Correction and Reversals, `OA` - Other Adjustments, `PI` - Payor Initiated Reductions, or `PR - Patient Responsibility. - Allowed values: `CO`, `CR`, `OA`, `PI`, `PR` - **`claimInformation.otherSubscriberInformation[].individualRelationshipCode`** (`string`) (required): Code identifying the relationship to the person insured. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#individual-relationship-codes) for a complete list. - Allowed values: `01`, `18`, `19`, `20`, `21`, `39`, `40`, `53`, `G8` - **`claimInformation.otherSubscriberInformation[].insuranceGroupOrPolicyNumber`** (`string`): The group or policy number. - **`claimInformation.otherSubscriberInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy within a specific insurance program. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#insurance-type-codes) for a complete list. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47` - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication`** (`object`): Claim-level data related to the adjudication of Medicare claims not related to an inpatient setting. Required when outpatient adjudication information is reported in the remittance advice _or_ when you need to report remark codes. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.claimPaymentRemarkCode`** (`array of strings`): The remark code. Visit the X12 [Remittance Advice Remark Codes](https://x12.org/codes/remittance-advice-remark-codes) for a complete list. You can include up to five codes in this array. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.endStageRenalDiseasePaymentAmount`** (`string`): The End-Stage Renal Disease (ESRD) payment amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.hcpcsPayableAmount`** (`string`): The claim Health Care Financing Administration Common Procedural Coding System (HCPCS) payable amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.nonPayableProfessionalComponentBilledAmount`** (`string`): The professional component amount billed but not payable, expressed as a decimal. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.reimbursementRate`** (`string`): The reimbursement percentage, expressed as a decimal. - **`claimInformation.otherSubscriberInformation[].nonCoveredChargeAmount`** (`string`): Required when the destination payer's cost avoidance policy allows providers to bypass claim submission to the otherwise prior payer identified in `otherSubscriberInformation.otherPayerName`. The amount must equal the total claim charge amount you reported in `claimInformation.claimChargeAmount`. - **`claimInformation.otherSubscriberInformation[].otherInsuredGroupName`** (`string`): The name of the health plan. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider`** (`array of OtherPayerBillingProvider objects`): Information about the billing provider. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].entityTypeQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `1` - Person or `2` - Non-Person Entity. - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier`** (`array of OtherPayerBillingProviderIdentifierItem objects`) (required): Identifiers for the billing provider. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier[].qualifier`** (`string`) (required): Set to `LU` - Location Number, or `G2` - Provider Commercial Number. - **`claimInformation.otherSubscriberInformation[].otherPayerName`** (`object`) (required): Details about the other payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress`** (`object`) - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.city`** (`string`) (required): The city name. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAdjudicationOrPaymentDate`** (`string`): The date the other payer adjudicated the claim. Required when this payer has previously adjudicated the claim and you aren’t including a value for `LineAdjudicationInformation.adjudicationOrPaymentDate`. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerClaimAdjustmentIndicator`** (`boolean`): The only valid value is `true`. Required when Required when the claim is being sent in the payer-to-payer COB model AND the destination payer is secondary to this payer AND this payer has re-adjudicated the claim. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerClaimControlNumber`** (`string`): The claim control number assigned by this payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier`** (`string`) (required): The identifier specified in `otherPayerIdentifierCode`. When sending Line Adjudication Information for this payer, the identifier sent in `lineAdjudicationInformation.otherPayerPrimaryIdentifier` must match this value. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifierTypeCode`** (`string`) (required): Code designating the type of identifier. Can be set to `PI` - Payor Identification or `XV` - Centers for Medicare/Medicaid Services PlanID. `XV` is deprecated. - Allowed values: `PI`, `XV` - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerOrganizationName`** (`string`) (required): The payer's organization name. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerPriorAuthorizationNumber`** (`string`): The authorization number assigned by this payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerPriorAuthorizationOrReferralNumber`** (`string`): The referral number assigned by this payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier`** (`array of OtherPayerSecondaryIdentifierItem objects`): An additional identification number to identify the other payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier[].qualifier`** (`string`) (required): Set to `2U` - Payer Identification Number, `EI` - Employer Identification Number, `FY` - Claim Office Number, or `NF` - National Association of Insurance Commissioners (NAIC) Code. Only set `qualifier` to `2U` when `otherPayerIdentifierTypeCode` is `XV`. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider`** (`array of OtherPayerReferringProvider objects`): Information about the provider who directed the patient to the rendering provider for care. For example, a primary care physician may refer patients to a specialist. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier`** (`array of OtherPayerReferringProviderIdentifierItem objects`) (required): Identifiers for the referring provider. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider`** (`array of OtherPayerRenderingProvider objects`): Information about the rendering provider. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].entityTypeQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `1` - Person or `2` - Non-Person Entity. - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier`** (`array of OtherPayerRenderingProviderIdentifierItem objects`): Identifiers for the rendering provider. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, `LU` - Location Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation`** (`array of OtherPayerServiceFacilityLocation objects`): Information about the service facility location. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier`** (`array of OtherPayerServiceFacilityLocationSecondaryIdentifierItem objects`) (required): A secondary identifier for the service facility location. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `LU` - Location Number, or `G2` - Provider Commercial Number. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider`** (`array of OtherPayerSupervisingProvider objects`): Information about the supervising provider. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier`** (`array of OtherPayerSupervisingProviderIdentifierItem objects`) (required): Identifiers for the supervising provider. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, `LU` - Location Number or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName`** (`object`) (required): The person or entity who is the primary policyholder for the other payer's health plan. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAdditionalIdentifier`** (`string`): The primary policyholder's Social Security Number. The Social Security Number must be a string of exactly nine numbers with no separators. For example `123456789`. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress`** (`object`) - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.city`** (`string`) (required): The city name. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredFirstName`** (`string`): The primary policyholder's first name, if they are an individual. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredIdentifier`** (`string`) (required): The identifier you specified in `otherInsuredIdentifierTypeCode`. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredIdentifierTypeCode`** (`string`) (required): Code identifying the type of identifier. Can be set to `II` - Standard Unique Health Identifier for each individual in the United States or `MI` - Member Identification Number. The code `MI` should be the subscriber's identification number as assigned by the payer, such as their subscriber ID. You should also use `MI` in claims submitted to the Indian Health Service/Contract Health Services (IHS/CHS) Fiscal Intermediary for the purpose of reporting the Tribe Residency Code (Tribe County State). For IHS/CHS claims, you should also put the SSN in the `otherInsuredAdditionalIdentifier` property.) - Allowed values: `II`, `MI` - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredLastName`** (`string`) (required): The primary policyholder's last name or organizational name. Don't include the primary policyholder's name suffix, such as Jr. or III. Use the designated `otherInsuredNameSuffix` property instead. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredMiddleName`** (`string`): The primary policyholder's middle name or initial, if they are an individual. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredNameSuffix`** (`string`): The primary policyholder's name suffix, such as Jr. or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `1` - Person or `2` - Non-Person Entity. - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation[].patientSignatureGeneratedForPatient`** (`boolean`): Code indicating how the patient or subscriber authorization signatures were obtained and how they are being retained by the provider. Can be set to `true` - Signature generated by provider because the patient was not physically present for services. This means the signature was generated by an entity other than the patient according to State or Federal law. This property is **required** for claims submitted to Medicare. - **`claimInformation.otherSubscriberInformation[].payerPaidAmount`** (`string`): The total amount in dollars the payer has paid on this claim. It is acceptable to set this to `0` (Zero). This is required when you include the `payToPlan` object, and you should set it to the amount the Medicaid agency actually paid. - **`claimInformation.otherSubscriberInformation[].paymentResponsibilityLevelCode`** (`string`) (required): Code identifying the payer's level of responsibility for paying this claim. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#payment-responsibility-sequence-number-codes) for a complete list. - Either this property or `subscriber.paymentResponsibilityLevelCode` must be set to `P` to indicate the primary insurance payer. Stedi rejects claims - including secondary and tertiary claims - that don't include information for the primary payer. - You may need to use other codes if the patient has multiple insurance policies. For example, if a patient is covered by both Medicare and an employer-sponsored commercial plan, you could bill the commercial payer first as `P` and then bill the Medicare payer second as `S`. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `P`, `S`, `T`, `U` - **`claimInformation.otherSubscriberInformation[].releaseOfInformationCode`** (`string`) (required): Code indicating whether the provider has on file a signed statement by the patient authorizing the release of medical data to other organizations. Can be set to `I` - Informed Consent to Release Medical Information or `Y` - Yes. Code `I` is required when the provider has not collected a signature AND state or federal laws do not require a signature be collected. Code `Y` is required when the provider has collected a signature OR when state or federal laws require a signature be collected. - Allowed values: `I`, `Y` - **`claimInformation.otherSubscriberInformation[].remainingPatientLiability`** (`string`): This is the remaining amount (as determined by the provider) to be paid after the other payer identified in the `otherPayerName` object has adjudicated the claim. - **`claimInformation.patientAmountPaid`** (`string`): The total amount in dollars the patient or their representatives have paid on this claim. For example, `20.50`. This includes any co-payments, co-insurance, or other amounts already collected from the patient. If the patient has not paid anything, you should omit this property entirely - **don't** set it to `0`. - **`claimInformation.patientConditionInformationVision`** (`array of PatientConditionInformationVision objects`): Required on vision claims involving replacement lenses or frames when this information is known to impact reimbursement. - **`claimInformation.patientConditionInformationVision[].certificationConditionIndicator`** (`string`) (required): Code indicating whether there is a certification. Can be set to `N` - No or `Y` - Yes. - Allowed values: `N`, `Y` - **`claimInformation.patientConditionInformationVision[].codeCategory`** (`string`) (required): Identifies the category to which the `conditionCode` applies. Can be set to `E1` - Spectacle Lenses, `E2` - Contact Lenses, or `E3` - Spectacle Frames. - Allowed values: `E1`, `E2`, `E3` - **`claimInformation.patientConditionInformationVision[].conditionCodes`** (`array of strings`) (required): Code indicating the reason for the vision services. Visit [Claim code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#vision-condition-codes) for a complete list. - **`claimInformation.patientControlNumber`** (`string`) (required): An identifier you assign to the claim. We **strongly recommend** submitting a unique value for this property so you can use it to correlate this claim with responses, such as the [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/receive-claim-responses#correlate-277ca) and the [835 ERA](https://www.stedi.com/docs/healthcare/receive-claim-responses#correlate-835-era). - Use random strings. The identifier should be more complex than a simple sequential number and should be hard to guess. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters from the [basic character set](https://www.stedi.com/docs/healthcare/submit-professional-claims#character-restrictions) to generate unique IDs. - Keep it to 17 characters max. Some payers cut off values longer than 17 characters in 277CAs and ERAs, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](https://www.stedi.com/docs/healthcare/submit-professional-claims#character-restrictions), and avoid special characters that are only available in the extended character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - If you plan to submit the autogenerated CMS-1500 PDF for this claim, you must limit this value to 14 characters or this value will be truncated in the PDF. This value appears in Box 26 (Patient's Account No.) on the CMS-1500 form. - **`claimInformation.patientSignatureSourceCode`** (`boolean`): Code indicating how the patient or subscriber authorization signatures were obtained and how they are being retained by the provider. Can be set to `true` - Signature generated by provider because the patient was not physically present for services. This means the signature was generated by an entity other than the patient according to State or Federal law. This property is **required** for claims submitted to Medicare. - **`claimInformation.patientWeight`** (`string`): The patient's weight in pounds, such as `150`. You should only set this property if the payer specifically requests it, such as for some Medicare DME claims. Otherwise, including this property can trigger claim edits. - **`claimInformation.placeOfServiceCode`** (`string`) (required): Code identifying the type of facility where the services were or may be performed. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`claimInformation.planParticipationCode`** (`string`) (required): Code indicating whether the provider accepts assignment. This refers to whether the provider accepts assignment and/or has a participation agreement with the destination payer. It does not indicate whether the patient has assigned benefits to the provider. Can be set to `A` - Assigned, `B` - Assignment Accepted on Clinical Lab Services Only, or `C` - Not Assigned. Choose `A` when the provider accepts assignment and/or has a participation agreement with the destination payer, OR the provider does not accept assignment and/or have a participation agreement, but is advising the payer to adjudicate this specific claim under the participating provider benefits allowed under certain plans. - Allowed values: `A`, `B`, `C` - **`claimInformation.pregnancyIndicator`** (`string`): Code indicating whether the patient is pregnant. Can be set to `Y` - Yes. - Allowed values: `Y` - **`claimInformation.propertyCasualtyClaimNumber`** (`string`): The agency claim number for this transaction. Used when services included in this claim are part of a property and casualty claim. - **`claimInformation.relatedCausesCode`** (`array of strings`): Code identifying an accompanying cause of an illness, injury or an accident. Can be set to `AA` - Auto Accident, `EM` - Employment, or `OA` - Other Accident. You can include up to two codes in this array. - **`claimInformation.releaseInformationCode`** (`string`) (required): Indicates whether the provider has on file a signed statement by the patient authorizing the release of medical data to other organizations. Can be set to `Y` - Yes, or `I` - Informed Consent to Release Medical Information for Conditions or Diagnoses Regulated by Federal Statues. Use `I` when the provider has not collected a signature AND state or federal laws do not require a signature be collected. - Allowed values: `I`, `Y` - **`claimInformation.serviceFacilityLocation`** (`object`): Required when the location for the service is different from the billing provider's address. The purpose of this object is to identify specifically where the service was rendered. This can be healthcare facilities, such as surgical centers or reference labs, OR the patient's address when services were rendered in their home. - Only include this object when the service facility location is **different** from the billing provider's address. If you include this object when the address is the same, Stedi omits all of the service facility location information from the claim submission, including the name and any identifiers. - For telehealth services, the service facility location is the provider's address, even though the patient may have been in their home or elsewhere when receiving services. - Don't use this object when reporting ambulance services - use `ambulancePickupLocation` and `ambulanceDropoffLocation` instead. - Sometimes the billing provider is an actual physician group that is located at the same address as a hospital, but is in fact a separate entity. In this case, you can differentiate the service facility location by including the specific suite or building number of the physician group. This ensures that the service facility location is different from the billing provider's address and is reported accurately. - **`claimInformation.serviceFacilityLocation.address`** (`object`) (required) - **`claimInformation.serviceFacilityLocation.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceFacilityLocation.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceFacilityLocation.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceFacilityLocation.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceFacilityLocation.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceFacilityLocation.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceFacilityLocation.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceFacilityLocation.npi`** (`string`): The organization [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the service facility. Only include this property when the service facility is not a component or subpart of the `billing` provider. Don't include when the service facility is the patient's home. - **`claimInformation.serviceFacilityLocation.organizationName`** (`string`) (required): The laboratory or facility name. When services were rendered in the patient's home, we recommend setting this to `Residence` or something similar. - **`claimInformation.serviceFacilityLocation.phoneExtension`** (`string`): The telephone extension, if applicable. Only submit the numeric extension. For example, don't include data that indicates an extension, such as 'ext.' or 'x-'. - **`claimInformation.serviceFacilityLocation.phoneName`** (`string`): The full name of the person or office. - **`claimInformation.serviceFacilityLocation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceFacilityLocation.secondaryIdentifier`** (`array of ClaimServiceFacilityLocationSecondaryIdentifierItem objects`): Secondary identifiers for the service facility location. Used when another identifier is needed for the claims processor to identify the facility or when the entity is not a healthcare provider and does not have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`claimInformation.serviceFacilityLocation.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceFacilityLocation.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceFacilityLocation.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `LU` - Location Number, or `G2` - Provider Commercial Number. - **`claimInformation.serviceLines`** (`array of ServiceLine objects`) (required): Information about one or more services rendered to the patient. - Each service line must be a unique service event as defined by the payer's billing policies. This means that you can use the same procedure code on multiple service lines as long as they are distinct events. - Some procedure codes are date-specific. In these cases, you may need to create a separate service line with that code for each applicable date of service, even if the episode of care extended over multiple days. - Service lines can share the same dates of service if the patient received multiple services on the same day. - **`claimInformation.serviceLines[].additionalNotes`** (`string`): Additional information the provider feels is necessary to substantiate the medical treatment that cannot be provided in other claim properties. Don't use this property to describe non-specific procedure codes. - **`claimInformation.serviceLines[].ambulanceCertification`** (`array of AmbulanceCertification objects`) - **`claimInformation.serviceLines[].ambulanceCertification[].certificationConditionIndicator`** (`string`) (required): Code indicating whether there is an ambulance certification. - Allowed values: `N`, `Y` - **`claimInformation.serviceLines[].ambulanceCertification[].conditionCodes`** (`array of strings`) (required) - **`claimInformation.serviceLines[].ambulanceDropOffLocation`** (`object`) - **`claimInformation.serviceLines[].ambulanceDropOffLocation.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].ambulanceDropOffLocation.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].ambulanceDropOffLocation.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].ambulanceDropOffLocation.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].ambulanceDropOffLocation.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].ambulanceDropOffLocation.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].ambulanceDropOffLocation.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].ambulancePatientCount`** (`integer`): The number of patients transported by the ambulance. Required when more than one patient is transported in the same vehicle for Ambulance or non-emergency transportation services. - **`claimInformation.serviceLines[].ambulancePickUpLocation`** (`object`) - **`claimInformation.serviceLines[].ambulancePickUpLocation.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].ambulancePickUpLocation.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].ambulancePickUpLocation.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].ambulancePickUpLocation.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].ambulancePickUpLocation.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].ambulancePickUpLocation.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].ambulancePickUpLocation.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].ambulanceTransportInformation`** (`object`): Information about the ambulance service provided to the patient. - **`claimInformation.serviceLines[].ambulanceTransportInformation.ambulanceTransportReasonCode`** (`string`) (required): Code indicating the reason for ambulance transport. For example, `A` - Patient was transported to nearest facility for care of symptoms, complaints, or both. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#ambulance-transport-reason-codes) for a complete list. - Allowed values: `A`, `B`, `C`, `D`, `E` - **`claimInformation.serviceLines[].ambulanceTransportInformation.patientWeightInPounds`** (`string`): The weight of the patient, in pounds, at the time of transport. Provide this value as a decimal, such as `150.5` - **`claimInformation.serviceLines[].ambulanceTransportInformation.roundTripPurposeDescription`** (`string`): The reason for the round trip ambulance service. - **`claimInformation.serviceLines[].ambulanceTransportInformation.stretcherPurposeDescription`** (`string`): The reason for usage of a stretcher during ambulance service. - **`claimInformation.serviceLines[].ambulanceTransportInformation.transportDistanceInMiles`** (`string`) (required): The number of miles the ambulance traveled to transport the patient. Provide this value as a decimal, such as `20.5`. Note that `0` (zero) is a valid value when ambulance services do not include a charge for mileage. - **`claimInformation.serviceLines[].assignedNumber`** (`string`): Deprecated; Stedi computes this value for you. - **`claimInformation.serviceLines[].conditionIndicatorDurableMedicalEquipment`** (`object`): Required when a Durable Medical Equipment Regional Carrier Certificate of Medical Necessity (DMERC CMN) or a DMERC Information Form (DIF), or Oxygen Therapy Certification is included on this service line and the information is necessary for adjudication. - **`claimInformation.serviceLines[].conditionIndicatorDurableMedicalEquipment.certificationConditionIndicator`** (`string`) (required): Code indicating whether there is a certification. Can be set to `N` - No or `Y` - Yes. - Allowed values: `Y`, `N` - **`claimInformation.serviceLines[].conditionIndicatorDurableMedicalEquipment.conditionIndicator`** (`string`) (required): Code indicating the condition of the certificate. Can be set to `38` - Certification signed by the physician is on file at the supplier's office or `ZV` - Replacement Item. - Allowed values: `38`, `ZV` - **`claimInformation.serviceLines[].conditionIndicatorDurableMedicalEquipment.conditionIndicatorCode`** (`string`): A second code indicating the condition of the certificate. Can be set to `38` - Certification signed by the physician is on file at the supplier's office or `ZV` - Replacement Item. - Allowed values: `38`, `ZV` - **`claimInformation.serviceLines[].contractInformation`** (`object`): Required when the submitter is contractually obligated to supply this information on post-adjudicated claims. - **`claimInformation.serviceLines[].contractInformation.contractAmount`** (`string`): The total dollar amount of the contract, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].contractInformation.contractCode`** (`string`): The contract code. This is an identifier for the contract. - **`claimInformation.serviceLines[].contractInformation.contractPercentage`** (`string`): The allowance or charge percent, expressed as a decimal. For example, `0.80`. - **`claimInformation.serviceLines[].contractInformation.contractTypeCode`** (`string`) (required): Code indicating the type of contract. Can be set to `01` - Diagnosis Related Group (DRG), `02` - Per Diem, `03` - Variable Per Diem, `04` - Flat, `05` - Capitated, `06` - Percent, or `09` - Other. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `09` - **`claimInformation.serviceLines[].contractInformation.contractVersionIdentifier`** (`string`): An additional identifier for the contract. Identifies the revision level of a particular format, program, technique or algorithm. - **`claimInformation.serviceLines[].contractInformation.termsDiscountPercentage`** (`string`): Terms discount percentage, expressed as a decimal, available to the purchaser if an invoice is paid on or before the Terms Discount Due Date. - **`claimInformation.serviceLines[].drugIdentification`** (`object`): To report prescribed drugs and biologics. - **`claimInformation.serviceLines[].drugIdentification.linkSequenceNumber`** (`string`): Required when the provided medication involves the compounding of two or more drugs being reported and there is no prescription number. The link sequence number is a provider assigned number that is unique to this claim. It allows the receiver to piece together the components of the compound. - **`claimInformation.serviceLines[].drugIdentification.measurementUnitCode`** (`string`) (required): Code identifying the unit of measurement. Can be set to `F2` - International Unit, `GR` - Gram, `ME` - Milligram, `ML` - Milliliter, or `UN` - Unit. - Allowed values: `F2`, `GR`, `ME`, `ML`, `UN` - **`claimInformation.serviceLines[].drugIdentification.nationalDrugCode`** (`string`) (required) - **`claimInformation.serviceLines[].drugIdentification.nationalDrugUnitCount`** (`string`) (required): The numeric value of the drug quantity. - **`claimInformation.serviceLines[].drugIdentification.pharmacyPrescriptionNumber`** (`string`): In cases where a compound drug is being billed, the components of the compound will all have the same prescription number. Payers receiving the claim can relate all the components by matching the prescription number. - **`claimInformation.serviceLines[].drugIdentification.serviceIdQualifier`** (`string`) (required): Code indicating the source of the drug code or product number. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#drug-identification-product-or-service-id-qualifier-codes) for a complete list. - Allowed values: `EN`, `EO`, `HI`, `N4`, `ON`, `UK`, `UP` - **`claimInformation.serviceLines[].durableMedicalEquipmentCertificateOfMedicalNecessity`** (`object`): Required on claims that include a Durable Medical Equipment Regional Carrier (DMERC) Certificate of Medical Necessity (CMN). - **`claimInformation.serviceLines[].durableMedicalEquipmentCertificateOfMedicalNecessity.attachmentTransmissionCode`** (`string`) (required): Code indicating the timing, transmission method, or format by which attachments will be sent. Required when the actual attachment is maintained by an attachment warehouse or similar vendor. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-transmission-codes) for a complete list. Use code `NS` when the paperwork is available on request at the provider's site, but is not being sent with the claim at this time. - Allowed values: `AB`, `AD`, `AF`, `AG`, `NS` - **`claimInformation.serviceLines[].durableMedicalEquipmentCertification`** (`object`): Required when a Durable Medical Equipment Regional Carrier Certificate of Medical Necessity (DMERC CMN) or a DMERC Information Form (DIF) or Oxygen Therapy Certification is included on this service line. - **`claimInformation.serviceLines[].durableMedicalEquipmentCertification.certificationTypeCode`** (`string`) (required): Code indicating the type of certification. Can be set to `I` - Initial, `R` - Renewal, or `S` - Revised. - Allowed values: `I`, `R`, `S` - **`claimInformation.serviceLines[].durableMedicalEquipmentCertification.durableMedicalEquipmentDurationInMonths`** (`string`) (required): The length of time the DME equipment is needed. - **`claimInformation.serviceLines[].durableMedicalEquipmentService`** (`object`): Information about durable medical equipment. For example, the rental and purchase price information. - **`claimInformation.serviceLines[].durableMedicalEquipmentService.days`** (`string`) (required): The length of medical treatment required. - **`claimInformation.serviceLines[].durableMedicalEquipmentService.frequencyCode`** (`string`) (required): Code indicating the frequency at which the rental equipment is billed. Can be set to `1` - weekly, `4` - monthly, or `6` - daily. - Allowed values: `1`, `4`, `6` - **`claimInformation.serviceLines[].durableMedicalEquipmentService.purchasePrice`** (`string`) (required): The purchase price for the equipment, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].durableMedicalEquipmentService.rentalPrice`** (`string`) (required): The rental price for the equipment, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].fileInformation`** (`array of strings`): Used to send additional data specifically requested by the payer. Not commonly used. - **`claimInformation.serviceLines[].formIdentification`** (`array of FormIdentification objects`): Use this object to attach standardized supplemental information to the claim when required by the payer. One example is payer documentation requirements for home health services. - **`claimInformation.serviceLines[].formIdentification[].formIdentifier`** (`string`) (required): A code from the industry code list you identified in `formTypeCode`. - **`claimInformation.serviceLines[].formIdentification[].formTypeCode`** (`string`) (required): Code indicating the type of form. Can be set to `AS` - Form Type Code or `UT` - Centers for Medicare and Medicaid Services (CMS) Durable Medical Equipment Regional Carrier (DMERC) Certificate of Medical Necessity (CMN) Forms. Set this to `AS` when you plan to include a home health form in the `formIdentifier` property. - Allowed values: `AS`, `UT` - **`claimInformation.serviceLines[].formIdentification[].supportingDocumentation`** (`array of SupportingDocumentation objects`): Use to provide information in response to a coded questionnaire document. - **`claimInformation.serviceLines[].formIdentification[].supportingDocumentation[].questionNumber`** (`string`) (required) - **`claimInformation.serviceLines[].formIdentification[].supportingDocumentation[].questionResponse`** (`string`): A text response to the question. - **`claimInformation.serviceLines[].formIdentification[].supportingDocumentation[].questionResponseAsDate`** (`string`): Date value. - **`claimInformation.serviceLines[].formIdentification[].supportingDocumentation[].questionResponseAsPercent`** (`string`): Percent formatted as a decimal. - **`claimInformation.serviceLines[].formIdentification[].supportingDocumentation[].questionResponseCode`** (`string`): Code indicating a yes or no condition response to the question. Can be set to `N` - No, `W` - Not Applicable, or `Y` - Yes. - Allowed values: `N`, `W`, `Y` - **`claimInformation.serviceLines[].goalRehabOrDischargePlans`** (`string`): The provider's goals, rehabilitation potential, or discharge plans for the patient. - **`claimInformation.serviceLines[].hospiceEmployeeIndicator`** (`boolean`): Whether the rendering provider is a hospice employee. Required on all Medicare claims involving physician services to hospice patients. Set to `true` if the rendering provider is a hospice employee, and `false` if they are not. - **`claimInformation.serviceLines[].lineAdjudicationInformation`** (`array of LineAdjudicationInformation objects`): Includes service line adjudication information for coordination of benefits between the initial payers of a health care claim and all subsequent payers. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].adjudicationOrPaymentDate`** (`string`) (required): The date the other payer adjudicated or paid the claim, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].bundledOrUnbundledLineNumber`** (`string`): The LX assigned number of the service line into which this service line is bundled. It's only used to bundle service lines. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation`** (`array of ClaimAdjustment objects`): Required when the payer made line level adjustments which caused the amount paid to differ from the amount originally charged. You can include up to five objects in this array. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails`** (`array of ClaimAdjustmentDetails objects`) (required) - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails[].adjustmentAmount`** (`string`) (required): The dollar amount of the adjustment, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails[].adjustmentQuantity`** (`string`): The units of service being adjusted. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails[].adjustmentReasonCode`** (`string`) (required): Code identifying the detailed reason the adjustment was made. Visit the X12 [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) for a complete list. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentGroupCode`** (`string`) (required): Code identifying the general category of payment adjustment. Can be set to `CO` - Contractual Obligations, `CR` - Correction and Reversals, `OA` - Other Adjustments, `PI` - Payor Initiated Reductions, or `PR - Patient Responsibility. - Allowed values: `CO`, `CR`, `OA`, `PI`, `PR` - **`claimInformation.serviceLines[].lineAdjudicationInformation[].otherPayerPrimaryIdentifier`** (`string`) (required): The payer ID for the payer responsible for reimbursement. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].paidServiceUnitCount`** (`string`) (required): The number of paid units from the remittance advice. expressed as a decimal. When paid units are not present on the remittance advice, use the original billed units. The maximum length for this property is 8 digits excluding the decimal. When a decimal is used, the maximum number of digits allowed to the right of the decimal is three. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureCode`** (`string`) (required): The procedure code. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureCodeDescription`** (`string`): The meaning of the procedure code. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureModifier`** (`array of strings`): Modifiers that convey special circumstances related to the performance of the service. You can include up to four modifiers in this array. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].remainingPatientLiability`** (`string`): The amount of the service line that the patient is still responsible for, expressed as a decimal. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].serviceIdQualifier`** (`string`) (required): Code identifying the type of `procedureCode`. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#composite-medical-procedure-product-or-service-id-qualifier-codes) for a complete list. - Allowed values: `ER`, `HC`, `HP`, `IV`, `WK` - **`claimInformation.serviceLines[].lineAdjudicationInformation[].serviceLinePaidAmount`** (`string`) (required): The amount paid for this service line, expressed as a decimal. Zero (0) is an acceptable value. - **`claimInformation.serviceLines[].linePricingRepricingInformation`** (`object`): Repricing information to be completed by repricers, not providers. For capitated encounters, pricing or repricing information usually is not applicable and is provided to qualify other information within the claim. - **`claimInformation.serviceLines[].linePricingRepricingInformation.exceptionCode`** (`string`): Code specifying the exception reason for consideration of out-of-network health care services. This is the reason generated by the third-party health organization. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#exception-codes-2) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6` - **`claimInformation.serviceLines[].linePricingRepricingInformation.policyComplianceCode`** (`string`) - Allowed values: `1`, `2`, `3`, `4`, `5` - **`claimInformation.serviceLines[].linePricingRepricingInformation.pricingMethodologyCode`** (`string`) (required): Code indicating the pricing or repricing methodology. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#pricing-methodology-codes-2) for a complete list. - Allowed values: `00`, `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14` - **`claimInformation.serviceLines[].linePricingRepricingInformation.rejectReasonCode`** (`string`) - Allowed values: `T1`, `T2`, `T3`, `T4`, `T5`, `T6` - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedAllowedAmount`** (`string`) (required): The dollar amount, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedApprovedAmbulatoryPatientGroupAmount`** (`string`): The dollar amount, expressed as a decimal. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedApprovedAmbulatoryPatientGroupCode`** (`string`): The code indicating the type of repricing. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedSavingAmount`** (`string`): The dollar amount, expressed as a decimal. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricingOrganizationIdentifier`** (`string`): The identifier of the organization that repriced the claim. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricingPerDiemOrFlatRateAmount`** (`string`): The pricing rate associated with per diem or flat rate repricing, expressed as a decimal. - **`claimInformation.serviceLines[].obstetricAnesthesiaAdditionalUnits`** (`integer`): The number of units reported by an anesthesia provider to reflect additional complexity of services. - **`claimInformation.serviceLines[].orderingProvider`** (`object`) - **`claimInformation.serviceLines[].orderingProvider.address`** (`object`) - **`claimInformation.serviceLines[].orderingProvider.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].orderingProvider.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].orderingProvider.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].orderingProvider.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].orderingProvider.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].orderingProvider.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].orderingProvider.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].orderingProvider.claimOfficeNumber`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.commercialNumber`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.contactInformation`** (`object`) - **`claimInformation.serviceLines[].orderingProvider.contactInformation.email`** (`string`): The email address. - **`claimInformation.serviceLines[].orderingProvider.contactInformation.faxNumber`** (`string`): The fax number, formatted as AAABBBCCCC. - **`claimInformation.serviceLines[].orderingProvider.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`claimInformation.serviceLines[].orderingProvider.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`claimInformation.serviceLines[].orderingProvider.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].orderingProvider.employerId`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.employerIdentificationNumber`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].orderingProvider.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].orderingProvider.locationNumber`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].orderingProvider.naic`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`claimInformation.serviceLines[].orderingProvider.organizationName`** (`string`): The provider's business name. - **`claimInformation.serviceLines[].orderingProvider.otherIdentifier`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.payerIdentificationNumber`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`claimInformation.serviceLines[].orderingProvider.providerUpinNumber`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.secondaryIdentifier`** (`array of ServiceLineOrderingProviderSecondaryIdentifierItem objects`): Secondary identifiers for the ordering provider. - **`claimInformation.serviceLines[].orderingProvider.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceLines[].orderingProvider.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceLines[].orderingProvider.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.serviceLines[].orderingProvider.ssn`** (`string`): Social Security Number without spaces or punctuation (9 digits) - **`claimInformation.serviceLines[].orderingProvider.stateLicenseNumber`** (`string`) - **`claimInformation.serviceLines[].orderingProvider.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].orderingProvider.taxonomyCode`** (`string`) - **`claimInformation.serviceLines[].postageTaxAmount`** (`string`): The amount of the postage, formatted as a decimal. When you include this property, the total `lineItemChargeAmount` for this service line must include this postage value. - **`claimInformation.serviceLines[].professionalService`** (`object`) (required): Information about the service rendered. - **`claimInformation.serviceLines[].professionalService.compositeDiagnosisCodePointers`** (`object`) (required): Diagnosis code pointers in order of importance to this service line. These pointers are an index to the ICD-10-CM codes you included in the `claimInformation.healthCareCodeInformation` object array. The pointer values can be from 1 to 12 (integer numbers). - You **must** set at least one pointer for the primary diagnosis. Then, you can add up to three additional pointers (up to four in total). - The number of pointers cannot exceed the number of diagnosis codes in the `claimInformation.healthCareCodeInformation` object array. For example, if you only supplied one diagnosis code, then the only valid pointer value is 1. - Don't put ICD-10-CM codes here - they belong in `claimInformation.healthCareCodeInformation`. - **`claimInformation.serviceLines[].professionalService.compositeDiagnosisCodePointers.diagnosisCodePointers`** (`array of strings`) (required): A diagnosis code pointer for this service line. - **`claimInformation.serviceLines[].professionalService.copayStatusCode`** (`string`): Code indicating whether co-payment requirements were met. Can be set to `O` - Copay exempt. - Allowed values: `0` - **`claimInformation.serviceLines[].professionalService.description`** (`string`): A free form description to clarify the procedure code and any procedure modifiers, as needed. - **`claimInformation.serviceLines[].professionalService.emergencyIndicator`** (`string`): Code indicating whether the service was related to an emergency. Can be set to `Y` - Yes. An emergency is when the patient requires immediate medical intervention as a result of severe, life threatening, or potentially disabling conditions. - Allowed values: `Y` - **`claimInformation.serviceLines[].professionalService.epsdtIndicator`** (`string`): Code indicating whether there was EPSDT involvement in the service. Can be set to `Y` - Yes. EPSDT is a program that provides comprehensive and preventive health care services for children under age 21 who are enrolled in Medicaid. - Allowed values: `Y` - **`claimInformation.serviceLines[].professionalService.familyPlanningIndicator`** (`string`): Code indicating whether the service was related to family planning. Can be set to `Y` - Yes. - Allowed values: `Y` - **`claimInformation.serviceLines[].professionalService.lineItemChargeAmount`** (`string`) (required): The total charge amount for the service, including the provider's base charge and any applicable tax or postage. It is acceptable to set this to `0` (zero). - **`claimInformation.serviceLines[].professionalService.measurementUnit`** (`string`) (required): Code identifying the unit of measurement. Can be set to `MJ` - Minutes or `UN` - Unit. Minutes is required for anesthesia services. Note that anesthesia time is counted from the moment that the practitioner, having completed the preoperative evaluation, starts an intravenous line, places monitors, administers pre-anesthesia sedation, or otherwise physically begins to prepare the patient for anesthesia. Time continues throughout the case and while the practitioner accompanies the patient to the post-anesthesia recovery unit (PACU). Time stops when the practitioner releases the patient to the care of PACU personnel. - Allowed values: `MJ`, `UN` - **`claimInformation.serviceLines[].professionalService.placeOfServiceCode`** (`string`): A code identifying the location where services were rendered. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`claimInformation.serviceLines[].professionalService.procedureCode`** (`string`) (required): The procedure code. - **`claimInformation.serviceLines[].professionalService.procedureIdentifier`** (`string`) (required): Code identifying the specific industry code list used for the `procedureCode`. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#composite-medical-procedure-product-or-service-id-qualifier-codes) for a complete list. - Allowed values: `ER`, `HC`, `IV`, `WK` - **`claimInformation.serviceLines[].professionalService.procedureModifiers`** (`array of strings`): A modifier code that clarifies or improves the reporting accuracy of the associated procedure code. If not required, do not send. - **`claimInformation.serviceLines[].professionalService.serviceUnitCount`** (`string`) (required): The number of units of the service provided, formatted as a decimal. The units depend on the procedure code being billed and the nature of the service. For example, they may correspond to office visits (1 unit per visit), individual diagnostic tests (1 unit per test), or time (when a service is billed in 15-minute increments, 4 units could equal 1 hour). - **`claimInformation.serviceLines[].providerControlNumber`** (`string`): A unique identifier for this service line within the claim. It appears in the 835 (ERA) response as `lineItemControlNumber`, allowing you to correlate ERAs to the specific service lines from the original claim. If you don't set this property, Stedi uses a random ULID. Stedi returns service line identifiers in the `claimReference.serviceLines[].lineItemControlNumber` object of the synchronous API response. - **`claimInformation.serviceLines[].purchasedServiceInformation`** (`object`): Specify information about services that were purchased. Required on non-vision service lines when adjudication is known to be impacted by the charge amount for services purchased from another source OR when adjudication is known to be impacted by the acquisition cost of lenses. - **`claimInformation.serviceLines[].purchasedServiceInformation.purchasedServiceChargeAmount`** (`string`) (required): The cost of the purchased service. - **`claimInformation.serviceLines[].purchasedServiceInformation.purchasedServiceProviderIdentifier`** (`string`) (required): This must be the same identifier you provided within `claimInformation.serviceLines[].purchasedServiceProvider`. - **`claimInformation.serviceLines[].purchasedServiceProvider`** (`object`) - **`claimInformation.serviceLines[].purchasedServiceProvider.address`** (`object`) - **`claimInformation.serviceLines[].purchasedServiceProvider.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].purchasedServiceProvider.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].purchasedServiceProvider.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].purchasedServiceProvider.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].purchasedServiceProvider.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].purchasedServiceProvider.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].purchasedServiceProvider.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].purchasedServiceProvider.claimOfficeNumber`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].purchasedServiceProvider.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`claimInformation.serviceLines[].purchasedServiceProvider.contactInformation.email`** (`string`): The email address. - **`claimInformation.serviceLines[].purchasedServiceProvider.contactInformation.faxNumber`** (`string`): The fax number. - **`claimInformation.serviceLines[].purchasedServiceProvider.contactInformation.name`** (`string`): The full name of the person or office. - **`claimInformation.serviceLines[].purchasedServiceProvider.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`claimInformation.serviceLines[].purchasedServiceProvider.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].purchasedServiceProvider.employerId`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.employerIdentificationNumber`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.firstName`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.lastName`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.locationNumber`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.middleName`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.naic`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.npi`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`claimInformation.serviceLines[].purchasedServiceProvider.organizationName`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.otherIdentifier`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.payerIdentificationNumber`** (`string`): The payer identification number. This must match the value you provided in `claimInformation.otherSubscriberInformation.otherPayerName.otherPayerIdentifier`. - **`claimInformation.serviceLines[].purchasedServiceProvider.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`claimInformation.serviceLines[].purchasedServiceProvider.providerUpinNumber`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.secondaryIdentifier`** (`array of ServiceLinePurchasedServiceProviderSecondaryIdentifierItem objects`): Secondary identifiers for the purchased service provider. - **`claimInformation.serviceLines[].purchasedServiceProvider.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceLines[].purchasedServiceProvider.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceLines[].purchasedServiceProvider.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.serviceLines[].purchasedServiceProvider.ssn`** (`string`): Social Security Number without spaces or punctuation (9 digits) - **`claimInformation.serviceLines[].purchasedServiceProvider.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`claimInformation.serviceLines[].purchasedServiceProvider.suffix`** (`string`) - **`claimInformation.serviceLines[].purchasedServiceProvider.taxonomyCode`** (`string`) - **`claimInformation.serviceLines[].referringProvider`** (`object`) - **`claimInformation.serviceLines[].referringProvider.address`** (`object`) - **`claimInformation.serviceLines[].referringProvider.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].referringProvider.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].referringProvider.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].referringProvider.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].referringProvider.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].referringProvider.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].referringProvider.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].referringProvider.claimOfficeNumber`** (`string`) - **`claimInformation.serviceLines[].referringProvider.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].referringProvider.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`claimInformation.serviceLines[].referringProvider.contactInformation.email`** (`string`): The email address. - **`claimInformation.serviceLines[].referringProvider.contactInformation.faxNumber`** (`string`): The fax number. - **`claimInformation.serviceLines[].referringProvider.contactInformation.name`** (`string`): The full name of the person or office. - **`claimInformation.serviceLines[].referringProvider.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`claimInformation.serviceLines[].referringProvider.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].referringProvider.employerId`** (`string`): The provider's Employer Identification Number (EIN). The EIN is typically a string of exactly nine numbers with no separators, unless otherwise specified by the provider. If you include this value, you cannot include the provider's `ssn`. - **`claimInformation.serviceLines[].referringProvider.employerIdentificationNumber`** (`string`): The provider's Employer Identification Number (EIN). This field is the same as `employerId`. The EIN is typically a string of exactly nine numbers with no separators, unless otherwise specified by the provider. If you include this value, you cannot include the provider's `ssn`. - **`claimInformation.serviceLines[].referringProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].referringProvider.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].referringProvider.locationNumber`** (`string`): The provider's location number. - **`claimInformation.serviceLines[].referringProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].referringProvider.naic`** (`string`): The National Association of Insurance Commissioners (NAIC) code. - **`claimInformation.serviceLines[].referringProvider.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`claimInformation.serviceLines[].referringProvider.organizationName`** (`string`): The provider's organization name. - **`claimInformation.serviceLines[].referringProvider.otherIdentifier`** (`string`) - **`claimInformation.serviceLines[].referringProvider.payerIdentificationNumber`** (`string`): The payer identification number. - **`claimInformation.serviceLines[].referringProvider.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`claimInformation.serviceLines[].referringProvider.providerUpinNumber`** (`string`): Deprecated; do not use. - **`claimInformation.serviceLines[].referringProvider.secondaryIdentifier`** (`array of ServiceLineReferringProviderSecondaryIdentifierItem objects`): Secondary identifiers for the referring provider. - **`claimInformation.serviceLines[].referringProvider.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceLines[].referringProvider.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceLines[].referringProvider.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.serviceLines[].referringProvider.ssn`** (`string`): The provider's Social Security Number. If you provide this value, you cannot include the provider's `employerId`. - **`claimInformation.serviceLines[].referringProvider.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`claimInformation.serviceLines[].referringProvider.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].referringProvider.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`claimInformation.serviceLines[].renderingProvider`** (`object`) - **`claimInformation.serviceLines[].renderingProvider.address`** (`object`) - **`claimInformation.serviceLines[].renderingProvider.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].renderingProvider.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].renderingProvider.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].renderingProvider.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].renderingProvider.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].renderingProvider.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].renderingProvider.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].renderingProvider.claimOfficeNumber`** (`string`) - **`claimInformation.serviceLines[].renderingProvider.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].renderingProvider.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.email`** (`string`): The email address. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.faxNumber`** (`string`): The fax number. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.name`** (`string`): The full name of the person or office. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].renderingProvider.employerId`** (`string`): The provider's Employer Identification Number (EIN). The EIN is typically a string of exactly nine numbers with no separators, unless otherwise specified by the provider. If you include this value, you cannot include the provider's `ssn`. - **`claimInformation.serviceLines[].renderingProvider.employerIdentificationNumber`** (`string`): The provider's Employer Identification Number (EIN). This field is the same as `employerId`. The EIN is typically a string of exactly nine numbers with no separators, unless otherwise specified by the provider. If you include this value, you cannot include the provider's `ssn`. - **`claimInformation.serviceLines[].renderingProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].renderingProvider.lastName`** (`string`): The provider's last name. You should include either the `lastName` or `organizationName` property in this object. - **`claimInformation.serviceLines[].renderingProvider.locationNumber`** (`string`): The provider's location number. - **`claimInformation.serviceLines[].renderingProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].renderingProvider.naic`** (`string`): The National Association of Insurance Commissioners (NAIC) code. - **`claimInformation.serviceLines[].renderingProvider.npi`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`claimInformation.serviceLines[].renderingProvider.organizationName`** (`string`): The provider's business name. You should include either the `lastName` or `organizationName` property in this object. - **`claimInformation.serviceLines[].renderingProvider.otherIdentifier`** (`string`) - **`claimInformation.serviceLines[].renderingProvider.payerIdentificationNumber`** (`string`): The payer identification number. - **`claimInformation.serviceLines[].renderingProvider.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`claimInformation.serviceLines[].renderingProvider.providerUpinNumber`** (`string`): Deprecated; do not use. - **`claimInformation.serviceLines[].renderingProvider.secondaryIdentifier`** (`array of ServiceLineRenderingProviderSecondaryIdentifierItem objects`): An identifier for the provider. - **`claimInformation.serviceLines[].renderingProvider.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceLines[].renderingProvider.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceLines[].renderingProvider.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.serviceLines[].renderingProvider.ssn`** (`string`): The provider's Social Security Number. If you provide this value, you cannot include the provider's `employerId`. - **`claimInformation.serviceLines[].renderingProvider.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`claimInformation.serviceLines[].renderingProvider.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].renderingProvider.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`claimInformation.serviceLines[].salesTaxAmount`** (`string`): Sales tax, formatted as a decimal. When you include this property, the total `lineItemChargeAmount` for this service line must include this sales tax value. - **`claimInformation.serviceLines[].serviceDate`** (`string`) (required): The date the service was rendered (for services performed on a single day), formatted as `YYYYMMDD`. When you send this property with `serviceDateEnd`, it will be used as the start date for the date range in which the service was rendered. - **`claimInformation.serviceLines[].serviceDateEnd`** (`string`): The end date of the service period, formatted as `YYYYMMDD`. If you send this property, you must also send `serviceDate`. - **`claimInformation.serviceLines[].serviceFacilityLocation`** (`object`): Required when the location for the service is different from the billing provider's address. The purpose of this object is to identify specifically where the service was rendered. This can be healthcare facilities, such as surgical centers or reference labs, OR the patient's address when services were rendered in their home. - Only include this object when the service facility location is **different** from the billing provider's address. If you include this object when the address is the same, Stedi omits all of the service facility location information from the claim submission, including the name and any identifiers. - For telehealth services, the service facility location is the provider's address, even though the patient may have been in their home or elsewhere when receiving services. - Don't use this object when reporting ambulance services - use `ambulancePickupLocation` and `ambulanceDropoffLocation` instead. - Sometimes the billing provider is an actual physician group that is located at the same address as a hospital, but is in fact a separate entity. In this case, you can differentiate the service facility location by including the specific suite or building number of the physician group. This ensures that the service facility location is different from the billing provider's address and is reported accurately. - **`claimInformation.serviceLines[].serviceFacilityLocation.address`** (`object`) (required) - **`claimInformation.serviceLines[].serviceFacilityLocation.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].serviceFacilityLocation.npi`** (`string`): The organization [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the service facility. Only include this property when the service facility is not a component or subpart of the `billing` provider. Don't include when the service facility is the patient's home. - **`claimInformation.serviceLines[].serviceFacilityLocation.organizationName`** (`string`) (required): The laboratory or facility name. When services were rendered in the patient's home, we recommend setting this to `Residence` or something similar. - **`claimInformation.serviceLines[].serviceFacilityLocation.phoneExtension`** (`string`): The telephone extension, if applicable. Only submit the numeric extension. For example, don't include data that indicates an extension, such as 'ext.' or 'x-'. - **`claimInformation.serviceLines[].serviceFacilityLocation.phoneName`** (`string`): The full name of the person or office. - **`claimInformation.serviceLines[].serviceFacilityLocation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].serviceFacilityLocation.secondaryIdentifier`** (`array of ServiceFacilityLocationSecondaryIdentifierItem objects`): Secondary identifier for the service facility location. Used when another identifier is needed for the claims processor to identify the facility or when the entity is not a healthcare provider and does not have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`claimInformation.serviceLines[].serviceFacilityLocation.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceLines[].serviceFacilityLocation.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceLines[].serviceFacilityLocation.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `G2` - Provider Commercial Number, or `LU` - Location Number. - **`claimInformation.serviceLines[].serviceLineDateInformation`** (`object`): Identify specific dates related to the service rendered. - **`claimInformation.serviceLines[].serviceLineDateInformation.beginTherapyDate`** (`string`): Required when a Durable Medical Equipment Regional Carrier Certificate of Medical Necessity (DMERC CMN) or DMERC Information Form (DIF), or Oxygen Therapy Certification is included on this service line, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.certificationRevisionOrRecertificationDate`** (`string`): The certification revision or recertification date, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.hemoglobinTestDate`** (`string`): Required on initial EPO claims service lines for dialysis patients when test results are being billed or reported, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.initialTreatmentDate`** (`string`): Required when this date is known to impact adjudication for claims involving spinal manipulation, physcial therapy, occupational therapy, or speech language pathology, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.lastCertificationDate`** (`string`): This is the date the ordering physician signed the CMN or Oxygen Therapy Certification, or the date the supplier signed the DMERC Information Form (DIF), formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.lastXRayDate`** (`string`): Required for claims involving spinal manipulation, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.prescriptionDate`** (`string`): Required when a drug is billed for this line and a prescription was written (or otherwise communicated by the prescriber if not written), formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.serumCreatineTestDate`** (`string`): Required on initial EPO claims service lines for dialysis patients when test results are being billed or reported, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.shippedDate`** (`string`): Required when billing or reporting products that were shipped, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.treatmentOrTherapyDate`** (`string`): This is the date of the latest visit or consultation, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineReferenceInformation`** (`object`): Additional identifiers for the service line. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.adjustedRepricedLineItemReferenceNumber`** (`string`): Required when a repricing (pricing) organization needs to have an identifying number on an adjusted service line. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.clinicalLaboratoryImprovementAmendmentNumber`** (`string`) - **`claimInformation.serviceLines[].serviceLineReferenceInformation.immunizationBatchNumber`** (`string`) - **`claimInformation.serviceLines[].serviceLineReferenceInformation.mammographyCertificationNumber`** (`string`) - **`claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization`** (`array of PriorAuthorization objects`): Prior authorization (preauthorization) numbers that apply to this service line. - Put each unique number in a separate array element. - You can use the same number on multiple service lines. **Important**: Only include prior authorization numbers that differ from the claim-level authorization in `claimInformation.claimSupplementalInformation.priorAuthorizationNumber`. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization[].otherPayerPrimaryIdentifier`** (`string`): This must match the value in `claimInformation.otherSubscriberInformation.otherPayerName.otherPayerIdentifier`. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization[].priorAuthorizationOrReferralNumber`** (`string`) (required): A prior authorization (preauthorization) number that applies to this service line. **Important**: Only use this property for service-level prior authorization numbers that differ from the claim-level authorization (`claimInformation.claimSupplementalInformation.priorAuthorizationNumber`). - **`claimInformation.serviceLines[].serviceLineReferenceInformation.referralNumber`** (`array of strings`) - **`claimInformation.serviceLines[].serviceLineReferenceInformation.referringCliaNumber`** (`string`) - **`claimInformation.serviceLines[].serviceLineReferenceInformation.repricedLineItemReferenceNumber`** (`string`): Required when a repricing (pricing) organization needs to have an identifying number on the service line. - **`claimInformation.serviceLines[].serviceLineSupplementalInformation`** (`array of ReportInformation objects`): Supporting documentation for the service line. Required when you plan to submit [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for the service line electronically through Stedi APIs or SFTP, when there is a paper attachment following this claim, or when the provider deems it necessary to identify additional information that is being held at the provider's office and is available upon request. You can submit up to 10 objects in this array. - **`claimInformation.serviceLines[].serviceLineSupplementalInformation[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.serviceLines[].serviceLineSupplementalInformation[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.serviceLines[].serviceLineSupplementalInformation[].attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.serviceLines[].serviceLineSupplementalInformation[].attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. Set this to `EL` when you plan to submit attachments electronically through Stedi APIs. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.serviceLines[].supervisingProvider`** (`object`) - **`claimInformation.serviceLines[].supervisingProvider.address`** (`object`) - **`claimInformation.serviceLines[].supervisingProvider.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].supervisingProvider.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].supervisingProvider.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].supervisingProvider.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].supervisingProvider.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].supervisingProvider.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].supervisingProvider.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].supervisingProvider.claimOfficeNumber`** (`string`) - **`claimInformation.serviceLines[].supervisingProvider.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].supervisingProvider.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`claimInformation.serviceLines[].supervisingProvider.contactInformation.email`** (`string`): The email address. - **`claimInformation.serviceLines[].supervisingProvider.contactInformation.faxNumber`** (`string`): The fax number. - **`claimInformation.serviceLines[].supervisingProvider.contactInformation.name`** (`string`): The full name of the person or office. - **`claimInformation.serviceLines[].supervisingProvider.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`claimInformation.serviceLines[].supervisingProvider.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].supervisingProvider.employerId`** (`string`): The provider's Employer Identification Number (EIN). The EIN is typically a string of exactly nine numbers with no separators, unless otherwise specified by the provider. If you include this value, you cannot include the provider's `ssn`. - **`claimInformation.serviceLines[].supervisingProvider.employerIdentificationNumber`** (`string`): The provider's Employer Identification Number (EIN). This field is the same as `employerId`. The EIN is typically a string of exactly nine numbers with no separators, unless otherwise specified by the provider. If you include this value, you cannot include the provider's `ssn`. - **`claimInformation.serviceLines[].supervisingProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].supervisingProvider.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].supervisingProvider.locationNumber`** (`string`): The provider's location number. - **`claimInformation.serviceLines[].supervisingProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].supervisingProvider.naic`** (`string`): The National Association of Insurance Commissioners (NAIC) code. - **`claimInformation.serviceLines[].supervisingProvider.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`claimInformation.serviceLines[].supervisingProvider.organizationName`** (`string`): The provider's business name. You should include either the `lastName` or `organizationName` property in this object. - **`claimInformation.serviceLines[].supervisingProvider.otherIdentifier`** (`string`) - **`claimInformation.serviceLines[].supervisingProvider.payerIdentificationNumber`** (`string`): The payer identification number. - **`claimInformation.serviceLines[].supervisingProvider.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`claimInformation.serviceLines[].supervisingProvider.providerUpinNumber`** (`string`): Deprecated; do not use. - **`claimInformation.serviceLines[].supervisingProvider.secondaryIdentifier`** (`array of ServiceLineSupervisingProviderSecondaryIdentifierItem objects`): Secondary identifiers for the supervising provider. - **`claimInformation.serviceLines[].supervisingProvider.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceLines[].supervisingProvider.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceLines[].supervisingProvider.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.serviceLines[].supervisingProvider.ssn`** (`string`): The provider's SSN. - **`claimInformation.serviceLines[].supervisingProvider.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`claimInformation.serviceLines[].supervisingProvider.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].supervisingProvider.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`claimInformation.serviceLines[].testResults`** (`array of Measurements objects`): Required on Dialysis related service lines for ESRD, or required on on DMERC service lines to report the Patient's Height from the Certificate of Medical Necessity (CMN). Use HT qualifier. - **`claimInformation.serviceLines[].testResults[].measurementQualifier`** (`string`) (required): Code identifying the specific measurement. Can be set to `HT` - Height, `R1` - Hemoglobin, `R2` - Hematocrit, `R3` - Epoetin Starting Dosage, or `R4` - Creatinine. - Allowed values: `HT`, `R1`, `R2`, `R3`, `R4` - **`claimInformation.serviceLines[].testResults[].measurementReferenceIdentificationCode`** (`string`) (required): Code identifying the type of measurement. Can be set to `OG` - Original or `TR` - Test Results. - Allowed values: `OG`, `TR` - **`claimInformation.serviceLines[].testResults[].testResults`** (`string`) (required): The value of the measurement. - **`claimInformation.serviceLines[].thirdPartyOrganizationNotes`** (`string`): Required when the TPO/repricer needs to forward additional information to the payer. Providers shouldn't complete this property. - **`claimInformation.signatureIndicator`** (`string`) (required): Indicates whether the provider's signature is on file. Can be set to `N` - No or `Y` - Yes. - Allowed values: `N`, `Y` - **`claimInformation.specialProgramCode`** (`string`): Code indicating the Special Program under which the services rendered to the patient were performed. Used for Medicaid claims only. Can be set to `02` - Physically Handicapped Children's Program, `03` - Special Federal Funding, `05` - Disability, or `09` - Second Opinion or Surgery. - Allowed values: `02`, `03`, `05`, `09` - **`claimInformation.spinalManipulationServiceInformation`** (`object`): Information about a chiropractic service rendered to the patient. Required on chiropractic claims involving spinal manipulation when the information is known to impact the payer's adjudication process. - **`claimInformation.spinalManipulationServiceInformation.patientConditionCode`** (`string`) (required): A code indicating the nature of a patient's condition. - Allowed values: `A`, `C`, `D`, `E`, `F`, `G`, `M` - **`claimInformation.spinalManipulationServiceInformation.patientConditionDescription1`** (`string`): The description of the patient's condition. - **`claimInformation.spinalManipulationServiceInformation.patientConditionDescription2`** (`string`): Additional description of the patient's condition - **`controlNumber`** (`string`): Not currently used. - **`dependent`** (`object`): Dependent who received the medical care associated with the claim. - If the dependent has their own member ID for the health plan, you should include the dependent's information in the `subscriber` object instead. To check whether a dependent has a member ID, submit an [Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) to the payer. The payer returns the dependent's member ID in the `dependents.memberId` property in the response, if present. - You must include `address` in this object when the patient is a dependent. - **`dependent.address`** (`object`): The patient's address. Every claim must include this information in either the `subscriber` (when the patient is the subscriber) or `dependent` (when the patient is a dependent) object. You must include at least the `address1` and `city` properties in this object. The `state` and `postalCode` properties are also required for all United States and Canadian addresses. - The address should be the patient's correct address at the time of service. Use of outdated values could cause the payer to reject, deny, or delay the claim due to suspected fraud. - If you don't know the patient's address, first submit a [Real-Time Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) for the patient and then copy the address from either the `subscriber` or `dependent` object in the response. - If the patient doesn't have a current address, you can populate the `address1` property with `UNKNOWN` and populate the city, state, and zip code with appropriate values based on your discretion. However, we still recommend running an eligibility check when possible, so you can use the address the payer has on file. Some payers may have explicit rules for how to handle this situation - check the payer's specific requirements before using this approach. - **`dependent.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`dependent.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`dependent.address.city`** (`string`) (required): The city name. - **`dependent.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`dependent.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`dependent.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`dependent.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`dependent.contactInformation`** (`object`): Only use this object for payer administrative contacts on property and casualty claims. Otherwise, you shoudn't include contact information here. If you include this object, you must supply at least one communication method (phone, fax, or email). - **`dependent.contactInformation.email`** (`string`): The email address. - **`dependent.contactInformation.faxNumber`** (`string`): The fax number. - **`dependent.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`dependent.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`dependent.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code. For example, you would format the phone number `123-456-7890` as `1234567890`. You should always include the area code, if applicable. Don't include long distance access numbers (such as `1`) or extensions in this field. - **`dependent.dateOfBirth`** (`string`) (required): The patient's date of birth, formatted as `YYYYMMDD`. - **`dependent.firstName`** (`string`) (required): The patient's first name. - **`dependent.gender`** (`string`) (required): Code indiciating the patient's gender. Can be set to `F` - Female, `M` - Male, or `U` - Unknown. You should set this property to `U` when the patient declines to answer or does not identify as male or female. Note that some payers may reject the claim if the patient's gender doesn't match the gender they have recorded in their member records. - Allowed values: `M`, `F`, `U` - **`dependent.lastName`** (`string`) (required): The patient's last name. **Don't** include the patient's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`dependent.memberId`** (`string`): The patient's identification number. Only used in Property and Casualty claims. - **`dependent.middleName`** (`string`): The patient's middle name or initial. - **`dependent.relationshipToSubscriberCode`** (`string`) (required): Identifies the relationship of the patient to the subscriber. Can be set to `01` - Spouse, `19` - Child, `20` - Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8` - **`dependent.ssn`** (`string`): The patient's Social Security Number. Only used for Property and Casualty claims. - **`dependent.suffix`** (`string`): The patient's name suffix, such as Jr. or III. Only include the patient's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`ordering`** (`object`): Deprecated; please use `claimInformation.serviceLines[].orderingProvider` instead. - **`ordering.address`** (`object`) - **`ordering.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`ordering.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`ordering.address.city`** (`string`) (required): The city name. - **`ordering.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`ordering.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`ordering.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`ordering.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`ordering.claimOfficeNumber`** (`string`) - **`ordering.commercialNumber`** (`string`) - **`ordering.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`ordering.contactInformation.email`** (`string`): The email address. - **`ordering.contactInformation.faxNumber`** (`string`): The fax number. - **`ordering.contactInformation.name`** (`string`): The full name of the person or office. - **`ordering.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`ordering.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`ordering.employerId`** (`string`) - **`ordering.employerIdentificationNumber`** (`string`) - **`ordering.firstName`** (`string`) - **`ordering.lastName`** (`string`) - **`ordering.locationNumber`** (`string`) - **`ordering.middleName`** (`string`) - **`ordering.naic`** (`string`) - **`ordering.npi`** (`string`) - **`ordering.organizationName`** (`string`) - **`ordering.payerIdentificationNumber`** (`string`) - **`ordering.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`ordering.providerUpinNumber`** (`string`) - **`ordering.ssn`** (`string`): Social Security Number without spaces or punctuation (9 digits) - **`ordering.stateLicenseNumber`** (`string`) - **`ordering.suffix`** (`string`) - **`ordering.taxonomyCode`** (`string`) - **`payToAddress`** (`object`) - **`payToAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payToAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payToAddress.city`** (`string`) (required): The city name. - **`payToAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`payToAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`payToAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`payToAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`payToPlan`** (`object`): Use for subrogation payment requests. If you include this information, you must also set the `claimInformation.otherSubscriberInformation.payerPaidAmount` to the amount the payer (for example, Medicaid) actually paid. - **`payToPlan.address`** (`object`) (required) - **`payToPlan.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payToPlan.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payToPlan.address.city`** (`string`) (required): The city name. - **`payToPlan.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`payToPlan.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`payToPlan.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`payToPlan.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`payToPlan.organizationName`** (`string`) (required): The last name of the individual, or the business name of the pay-to-plan organization. - **`payToPlan.primaryIdentifier`** (`string`) (required): The identifier you specified in `primaryIdentifierTypeCode`. - **`payToPlan.primaryIdentifierTypeCode`** (`string`) (required): Code identifying the type of identifier. Can be set to `PI` - Payor Identification or `XV` - Centers for Medicare/Medicaid Services PlanID. `XV` is deprecated. - Allowed values: `PI`, `XV` - **`payToPlan.secondaryIdentifier`** (`string`): The secondary identifier you specified in `secondaryIdentifierTypeCode`. - **`payToPlan.secondaryIdentifierTypeCode`** (`string`): Code identifying the type of secondary identifier. Can be set to `2U` - Payer Identification Number, `FY` - Claim Office Number, or `NF` - National Association of Insurance Commissioners. You should only set this to `2U` when you set the `primaryIdentifierTypeCode` to `XV`. - Allowed values: `2U`, `FY`, `NF` - **`payToPlan.taxIdentificationNumber`** (`string`) (required): The Employer Identification Number (EIN). This must be a string of exactly nine numbers with no separators. - **`payerAddress`** (`object`) - **`payerAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payerAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payerAddress.city`** (`string`) (required): The city name. - **`payerAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`payerAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`payerAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`payerAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`providers`** (`array of ClaimsProvider objects`): Information about all providers, with each provider specified by its type (for example, `Referring`). You can't include this array in the same request as dedicated provider objects, such as `referring` or `rendering`. - **`providers[].address`** (`object`) - **`providers[].address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`providers[].address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`providers[].address.city`** (`string`) (required): The city name. - **`providers[].address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`providers[].address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`providers[].address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`providers[].address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`providers[].commercialNumber`** (`string`): The commercial number of the supervising provider. - **`providers[].contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`providers[].contactInformation.email`** (`string`): The email address. - **`providers[].contactInformation.faxNumber`** (`string`): The fax number. - **`providers[].contactInformation.name`** (`string`): The full name of the person or office. - **`providers[].contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`providers[].contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`providers[].employerId`** (`string`) - **`providers[].firstName`** (`string`): The first name of the supervising provider. - **`providers[].lastName`** (`string`): The last name of the supervising provider. - **`providers[].locationNumber`** (`string`): The location number of the supervising provider. - **`providers[].middleName`** (`string`): The middle name or initial of the supervising provider. - **`providers[].npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the supervising provider. - **`providers[].organizationName`** (`string`): The supervising provider's business name, when the provider is not an individual. - **`providers[].providerType`** (`string`) (required): This field is now automatically populated and it only remains for backwards compatibility. - **`providers[].providerUpinNumber`** (`string`): Deprecated; do not use. - **`providers[].ssn`** (`string`): Social Security Number without spaces or punctuation (9 digits) - **`providers[].stateLicenseNumber`** (`string`): The state license number of the supervising provider. - **`providers[].suffix`** (`string`): The suffix of the supervising provider's name, such as Jr. or III. - **`providers[].taxonomyCode`** (`string`) - **`receiver`** (`object`) (required): The entity responsible for the payment of the claim, such as an insurance company or government agency. - **`receiver.organizationName`** (`string`) (required): The business name of the payer receiving the claim, such as Aetna or Cigna. - **`receiver.receiverId`** (`string`): Set to `PAPER` when you want Stedi to print this claim and mail it to the payer. Omit otherwise. Visit [Submit paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims) for details. - **`referring`** (`object`): Information about the provider who directed the patient to the rendering provider for care. For example, a primary care physician may refer patients to a specialist. Use when the referring provider applies to the entire claim, not just a specific service line. This should be an individual, not an organization, and you should supply at least the provider's `lastName` and an identifier, which is typically the `npi`. - **`referring.address`** (`object`) - **`referring.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`referring.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`referring.address.city`** (`string`) (required): The city name. - **`referring.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`referring.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`referring.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`referring.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`referring.commercialNumber`** (`string`): The provider's commercial number. - **`referring.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`referring.contactInformation.email`** (`string`): The email address. - **`referring.contactInformation.faxNumber`** (`string`): The fax number. - **`referring.contactInformation.name`** (`string`): The full name of the person or office. - **`referring.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`referring.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`referring.firstName`** (`string`): The provider's first name. - **`referring.lastName`** (`string`): The provider's last name. - **`referring.middleName`** (`string`): The provider's middle name or initial. - **`referring.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`referring.organizationName`** (`string`): The provider's business name. - **`referring.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`referring.providerUpinNumber`** (`string`): Deprecated; do not use. - **`referring.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`referring.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`referring.taxonomyCode`** (`string`) - **`rendering`** (`object`): Information about the person or company (laboratory or other facility) who rendered the care. Use this object for all types of rendering providers including laboratories. When a substitute provider (locum tenens) was used, enter that provider's information here. - Use when the provider applies to the entire claim or to at least one service line. For example, if a claim had two service lines with two different rendering providers, you would include the provider for the first service line here and leave the `claimInformation.serviceLines[].renderingProvider` object for that service line blank. Then, you would specify the second provider in the appropriate service line's `claimInformation.serviceLines[].renderingProvider` object. - You can omit this object when the rendering provider is the same as the billing provider. In that case, you would include the provider's information in the `billing` object and leave this object blank. - **`rendering.address`** (`object`) - **`rendering.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`rendering.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`rendering.address.city`** (`string`) (required): The city name. - **`rendering.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`rendering.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`rendering.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`rendering.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`rendering.commercialNumber`** (`string`): The provider's commercial number. - **`rendering.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`rendering.contactInformation.email`** (`string`): The email address. - **`rendering.contactInformation.faxNumber`** (`string`): The fax number. - **`rendering.contactInformation.name`** (`string`): The full name of the person or office. - **`rendering.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`rendering.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`rendering.firstName`** (`string`): The provider's first name, if the provider is an individual. - **`rendering.lastName`** (`string`): The provider's last name, if the provider is an individual. You must include either the `lastName` or `organizationName` property in this object. - **`rendering.locationNumber`** (`string`): The provider's location number. - **`rendering.middleName`** (`string`): The provider's middle name or initial, if the provider is an individual. - **`rendering.npi`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`rendering.organizationName`** (`string`): The provider's business name, if the provider is an organization. You must include either the `lastName` or `organizationName` property in this object. - **`rendering.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`rendering.providerUpinNumber`** (`string`): Deprecated; do not use. - **`rendering.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`rendering.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`rendering.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`submitter`** (`object`) (required): The entity submitting the healthcare claim. This can be either an individual or an organization, such as a doctor, hospital, or insurance company. You must submit at least `organizationName` or `lastName` properties and the `contactInformation` object. If you don't supply the `submitterIdentification` property, Stedi uses the value from `billing.npi` in the request. - **`submitter.contactInformation`** (`object`) (required): You must include at least one communication method (phone, fax, or email) in this object. - **`submitter.contactInformation.email`** (`string`): The email address. - **`submitter.contactInformation.faxNumber`** (`string`): The fax number. - **`submitter.contactInformation.name`** (`string`): The full name of the person or office. - **`submitter.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`submitter.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`submitter.firstName`** (`string`): The first name of the individual submitting the claim. - **`submitter.lastName`** (`string`): The last name of the individual submitting the claim. - **`submitter.middleName`** (`string`): The middle name or initial of the individual submitting the claim. - **`submitter.organizationName`** (`string`): The business name of the organization submitting the claim. - **`submitter.submitterIdentification`** (`string`): The submitter's Electronic Transmitter Identification Number (ETIN), as assigned by the payer. For some payers, this may be the same as the submitter's NPI or TIN, but it can also be another unique identifier. Payers can refer to this identifier as the Provider Number, Submitter ID, Submitter Identifier, Submitter Primary Number, Sender Code, Certified Contracted Provider ID, and other names. If you don't provide this property, Stedi uses the billing provider's NPI from `billing.npi` property. - **`subscriber`** (`object`) (required): The person or entity who is the primary policyholder for the health plan _or_ a dependent with their own member ID. The subscriber can be an individual or a business entity. - When a dependent has a unique, payer-assigned member ID, treat them as the `subscriber` for the claim submission - include their information here and omit the `dependent` object from the request. Stedi treats the subscriber as an individual when the request doesn't contain a value for the `subscriber.organizationName` property. - You must set the `dateOfBirth` and `gender` properties when the subscriber is the patient. Stedi determines that the subscriber is the patient when the `dependent` object is not included in the request. - If either `dateOfBirth` or `gender` is set, you must include both properties. You can either include both properties or neither within a single request. - You must include `address` in this object when the patient is the subscriber. If the patient is a dependent, include address information in the `dependent` object instead. - **`subscriber.address`** (`object`): The patient's address. Every claim must include this information in either the `subscriber` (when the patient is the subscriber) or `dependent` (when the patient is a dependent) object. You must include at least the `address1` and `city` properties in this object. The `state` and `postalCode` properties are also required for all United States and Canadian addresses. - The address should be the patient's correct address at the time of service. Use of outdated values could cause the payer to reject, deny, or delay the claim due to suspected fraud. - If you don't know the patient's address, first submit a [Real-Time Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) for the patient and then copy the address from either the `subscriber` or `dependent` object in the response. - If the patient doesn't have a current address, you can populate the `address1` property with `UNKNOWN` and populate the city, state, and zip code with appropriate values based on your discretion. However, we still recommend running an eligibility check when possible, so you can use the address the payer has on file. Some payers may have explicit rules for how to handle this situation - check the payer's specific requirements before using this approach. - **`subscriber.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`subscriber.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`subscriber.address.city`** (`string`) (required): The city name. - **`subscriber.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`subscriber.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`subscriber.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`subscriber.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`subscriber.contactInformation`** (`object`): Only use this object for payer administrative contacts on property and casualty claims. Otherwise, you shoudn't include contact information here. If you include this object, you must supply at least one communication method (phone, fax, or email). - **`subscriber.contactInformation.email`** (`string`): The email address. - **`subscriber.contactInformation.faxNumber`** (`string`): The fax number. - **`subscriber.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`subscriber.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`subscriber.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code. For example, you would format the phone number `123-456-7890` as `1234567890`. You should always include the area code, if applicable. Don't include long distance access numbers (such as `1`) or extensions in this field. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth, formatted as `YYYYMMDD`. This property is **required** if the subscriber is an individual. - **`subscriber.firstName`** (`string`): The subscriber's first name. This property is **recommended** when the subscriber is an individual. Omit when the subscriber is an organization. Some payers reject requests without the `firstName` property. - **`subscriber.gender`** (`string`): Identifies the subscriber's gender. Can be set to `F` - Female, `M` - Male, or `U` - Unknown. This property is **required** if the subscriber is an individual. You should set this property to `U` when the patient declines to answer or does not identify as male or female. Note that some payers may reject the claim if the patient's gender doesn't match the gender they have recorded in their member records. - Allowed values: `M`, `F`, `U` - **`subscriber.groupNumber`** (`string`): The subscriber's health plan group number. - Provide this property OR the `policyNumber`, not both. - Provide this property OR the `subscriberGroupName`, not both. If this property is set, Stedi ignores the `subscriberGroupName` property. - **`subscriber.insuranceTypeCode`** (`string`): Identifies the type of insurance policy within a specific insurance program. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#insurance-type-codes) for a complete list. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47` - **`subscriber.lastName`** (`string`): The subscriber's last name. This property is **required** if the subscriber is an individual. Omit when the subscriber is an organization. **Don't** include the subscriber's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. This property is **required** if the subscriber is an individual. - **`subscriber.middleName`** (`string`): The subscriber's middle name or initial. - **`subscriber.organizationName`** (`string`): The business name of the entity submitting the claim. This is **required** when the subscriber is an organization. When the subscriber is an organization, you should identify the patient in the `dependent` object. - **`subscriber.paymentResponsibilityLevelCode`** (`string`): Code identifying the payer's level of responsibility for paying this claim. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#payment-responsibility-sequence-number-codes) for a complete list of possible codes. - Stedi sets this property to `P` - Primary by default. You only need to include it when you need to submit codes other than `P`. This can happen when the patient has multiple insurance policies. For example, if a patient is covered by both Medicare and an employer-sponsored commercial plan, you could bill the commercial plan first as `P` and then bill the Medicare payer second as `S`. - Either this property or `otherSubscriberInformation.paymentResponsibilityLevelCode` must be set to `P` to indicate the primary insurance payer. Stedi rejects claims - including secondary and tertiary claims - that don't include information for the primary payer. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `P`, `S`, `T`, `U` - **`subscriber.policyNumber`** (`string`): The subscriber's health plan policy number. You should provide either this property OR the `groupNumber`, not both. - **`subscriber.ssn`** (`string`): The subscriber's Social Security Number. - **`subscriber.subscriberGroupName`** (`string`): The name of the subscriber's health plan. For example, Cigna or Blue Cross Blue Shield. Provide either this property OR the `groupNumber`, not both. If `groupNumber` is set, Stedi ignores this value and uses the value in `groupNumber`. - **`subscriber.suffix`** (`string`): The suffix of the subscriber's name, such as Jr. or Sr. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`supervising`** (`object`): The entity responsible for overseeing the rendering provider and the care reported in this claim. Applies when the rendering provider is supervised by a physician. Use when the provider applies to the entire claim, not just a specific service line. This should be an individual, not an organization, and you should supply at least the provider's `lastName` and an identifier, which is typically the `npi`. - **`supervising.address`** (`object`) - **`supervising.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`supervising.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`supervising.address.city`** (`string`) (required): The city name. - **`supervising.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`supervising.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`supervising.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`supervising.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`supervising.commercialNumber`** (`string`): The commercial number of the supervising provider. - **`supervising.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`supervising.contactInformation.email`** (`string`): The email address. - **`supervising.contactInformation.faxNumber`** (`string`): The fax number. - **`supervising.contactInformation.name`** (`string`): The full name of the person or office. - **`supervising.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`supervising.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`supervising.employerId`** (`string`) - **`supervising.firstName`** (`string`): The first name of the supervising provider. - **`supervising.lastName`** (`string`): The last name of the supervising provider. - **`supervising.locationNumber`** (`string`): The location number of the supervising provider. - **`supervising.middleName`** (`string`): The middle name or initial of the supervising provider. - **`supervising.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the supervising provider. - **`supervising.organizationName`** (`string`): The supervising provider's business name, when the provider is not an individual. - **`supervising.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`supervising.providerUpinNumber`** (`string`): Deprecated; do not use. - **`supervising.ssn`** (`string`): Social Security Number without spaces or punctuation (9 digits) - **`supervising.stateLicenseNumber`** (`string`): The state license number of the supervising provider. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`supervising.suffix`** (`string`): The suffix of the supervising provider's name, such as Jr. or III. - **`supervising.taxonomyCode`** (`string`) - **`tradingPartnerName`** (`string`): This is the payer's business name, like Cigna or Aetna. - **`tradingPartnerSecondaryIdentifiers`** (`object`): Secondary identifiers for the payer. You can include up to three properties in this object. - **`tradingPartnerSecondaryIdentifiers.claimOfficeNumber`** (`string`): Claim Office Number. - **`tradingPartnerSecondaryIdentifiers.employerIdentificationNumber`** (`string`): Employer Identification Number. This must be a string of exactly nine numbers with no separators. - **`tradingPartnerSecondaryIdentifiers.naic`** (`string`): National Association of Insurance Commissioners (NAIC) Code. - **`tradingPartnerSecondaryIdentifiers.payerIdentificationNumber`** (`string`): Payer Identification Number. This shape is deprecated since 1/9/25. - **`tradingPartnerServiceId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`usageIndicator`** (`string`): Whether you want to send a test or production claim. This property also allows you to filter claims in the Stedi portal by production or test data. By default, this property is set to `P` for production data. Use `T` to designate a claim as test data. **Example:** ```json { "billing": { "address": { "address1": "123 Some St", "address2": "Floor 1", "city": "A City", "postalCode": "123450000", "state": "NY" }, "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5553334444" }, "employerId": "123456789", "npi": "1999999984", "organizationName": "Therapy Associates", "providerType": "BillingProvider", "taxonomyCode": "2084P0800X" }, "claimInformation": { "benefitsAssignmentCertificationIndicator": "Y", "claimChargeAmount": "109.20", "claimFilingCode": "CI", "claimFrequencyCode": "1", "healthCareCodeInformation": [ { "diagnosisCode": "F1111", "diagnosisTypeCode": "ABK" } ], "patientControlNumber": "", "placeOfServiceCode": "02", "planParticipationCode": "A", "releaseInformationCode": "Y", "serviceFacilityLocation": { "address": { "address1": "1234 Other St", "city": "A City", "postalCode": "123450000", "state": "NY" }, "npi": "1999999984", "organizationName": "Smith Associates" }, "serviceLines": [ { "professionalService": { "compositeDiagnosisCodePointers": { "diagnosisCodePointers": [ "1" ] }, "lineItemChargeAmount": "109.20", "measurementUnit": "UN", "procedureCode": "90837", "procedureIdentifier": "HC", "procedureModifiers": [ "95" ], "serviceUnitCount": "1" }, "providerControlNumber": "111222333", "renderingProvider": { "firstName": "Jane", "lastName": "Smith", "npi": "1999999984", "providerType": "RenderingProvider", "taxonomyCode": "111YP2000X" }, "serviceDate": "20240101" } ], "signatureIndicator": "Y" }, "receiver": { "organizationName": "Cigna" }, "submitter": { "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5552223333" }, "organizationName": "Test Data Health Services, Inc.", "submitterIdentification": "" }, "subscriber": { "address": { "address1": "2222 Random St", "city": "A City", "postalCode": "123450000", "state": "NY" }, "dateOfBirth": "20000101", "firstName": "John", "gender": "M", "groupNumber": "3335555", "lastName": "Anon", "memberId": "U7777788888", "paymentResponsibilityLevelCode": "P", "subscriberGroupName": "Cigna" }, "tradingPartnerName": "Cigna", "tradingPartnerServiceId": "62308", "usageIndicator": "T" } ``` ### Responses #### 200 ClaimsSubmission 200 response **Schema:** `ClaimsSubmissionResponseContent` **Properties:** - **`claimReference`** (`object`): Information about the claim. - **`claimReference.claimType`** (`string`): This shape is deprecated: Currently not used. - **`claimReference.correlationId`** (`string`): An identifier Stedi assigns to the claim. - **`claimReference.customerClaimNumber`** (`string`): A tracking number that Stedi assigns to the claim. - **`claimReference.formatVersion`** (`string`): The X12 EDI version Stedi used to generate the claim for the payer. This is always `5010`. - **`claimReference.patientControlNumber`** (`string`): The `patientControlNumber` from the original request, if supplied. This is a unique identifier that you assign to the claim so you can track the claim and correlate it with responses from the payer. - **`claimReference.payerID`** (`string`): This shape is deprecated: Please use payerId. - **`claimReference.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`claimReference.rhclaimNumber`** (`string`): A tracking number Stedi assigns to the claim. This is the same as the `correlationId`. - **`claimReference.serviceLines`** (`array of ServiceLineResponseIdentifier objects`): Contains a unique identifier for each service line, listed in the order the service lines were included in the claim. You can use these identifiers to correlate payer responses to specific service lines. - **`claimReference.serviceLines[].lineItemControlNumber`** (`string`): A unique identifier for the service line, matching the value provided for the `claimInformation.serviceLines[].providerControlNumber` property in the claim submission. If you didn't provide a value for `providerControlNumber`, this property contains a randomly generated ULID for the service line. - **`claimReference.submitterId`** (`string`): Stedi's ID for the entity that submitted the claim. - **`claimReference.timeOfResponse`** (`string`): A timestamp for Stedi's response to the claim submission. - **`controlNumber`** (`string`): An identifier for the transaction. - **`editResponses`** (`array of EditResponse objects`): Currently not used. - **`editResponses[].allowOverride`** (`string`) - **`editResponses[].badData`** (`string`) - **`editResponses[].claimCorePath`** (`string`) - **`editResponses[].editActivity`** (`string`) - **`editResponses[].editName`** (`string`) - **`editResponses[].element`** (`string`) - **`editResponses[].errorDescription`** (`string`) - **`editResponses[].fieldIndex`** (`string`) - **`editResponses[].loop`** (`string`) - **`editResponses[].phaseID`** (`string`) - **`editResponses[].qualifierCode`** (`string`) - **`editResponses[].referenceID`** (`string`) - **`editResponses[].segment`** (`string`) - **`editStatus`** (`string`): This shape is deprecated: Currently not used. - **`errors`** (`array of ClaimsError objects`): Errors resulting from claim edits. You must review and fix these errors before resubmitting. - **`errors[].code`** (`string`): The error code. - **`errors[].description`** (`string`): The description of the error code. - **`errors[].followupAction`** (`string`): Recommended followup actions to correct the error. - **`errors[].location`** (`string`): Where the error is located in the original request. - **`errors[].value`** (`string`): The value for the data causing the error. - **`failure`** (`object`): Currently not used. - **`failure.code`** (`string`) - **`failure.description`** (`string`) - **`httpStatusCode`** (`string`): Stedi can return the following status codes: - `200`: Stedi successfully generated the X12 EDI claim format required by the payer. It does not indicate whether the payer has accepted the claim - the payer will respond later with a 277CA containing this information. [Learn more about 277CAs](https://www.stedi.com/docs/healthcare/receive-claim-responses#response-types). - `400`: The request contains one or more problems with the claim data. Examples include missing required fields, invalid values, or incorrect data types. The response includes a message describing the problem. - `403`: The request is not permitted, such as using a test API key to submit a production transaction. - Allowed values: `200 OK`, `400 BAD_REQUEST`, `403 FORBIDDEN` - **`meta`** (`object`): Metadata from Stedi about the request. - **`meta.applicationMode`** (`string`): Indicates where this request can be found for support. - **`meta.billerId`** (`string`): The biller ID assigned to this request. - **`meta.senderId`** (`string`): The sender ID assigned to this request. - **`meta.submitterId`** (`string`): The submitter ID assigned to this request. - **`meta.traceId`** (`string`): The file execution ID, a unique identifier assigned to the processed file within the Stedi platform. - **`payer`** (`object`): Information about the payer for the submitted claim. - **`payer.payerID`** (`string`): This shape is deprecated: Please use payerId. - **`payer.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`payer.payerName`** (`string`): The payer's business name, such as Aetna or Cigna. - **`status`** (`string`): The status of the claim submission. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original claim. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`warnings`** (`array of ClaimsWarning objects`): A list of warnings. Currently not used. - **`warnings[].code`** (`string`): A machine-readable code indicating the type of problem. - **`warnings[].description`** (`string`): A human-readable description of the problem. - **`x12`** (`string`): A [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/claim-responses-overview#277ca-claim-acknowledgment) acceptance or rejection from Stedi in X12 EDI format. It indicates whether the claim has passed Stedi's claim edits. When the claim fails one or more edits, the 277CA contains `STC` segments with information about each error. These are the same error codes that appear in the `errors` array. Note that this 277CA only indicates whether Stedi has accepted or rejected the claim submission. You may receive additional 277CA acceptances or rejections as the claim is routed to the payer. **Example:** ```json { "claimReference": { "correlationId": "01HTCX97F6XS6F2K22D4KD59TK", "formatVersion": "5010", "patientControlNumber": "22266555", "payerId": "62308", "rhclaimNumber": "01HTCX97F6XS6F2K22D4KD59TK", "serviceLines": [ { "lineItemControlNumber": "111222333" } ], "timeOfResponse": "2024-04-01T13:23:54.255Z" }, "controlNumber": "555123", "httpStatusCode": "200 OK", "meta": { "traceId": "a7f7c912-77f7-489d-96fc-c4ab3b5c33fc" }, "payer": { "payerId": "62308", "payerName": "Cigna" }, "status": "SUCCESS", "tradingPartnerServiceId": "62308", "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*1951*^*00501*980180479*0*T*>~GS*HN*STEDITEST*574183004559*20260213*195151*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC8YJE8EY6A5HFR00Z5H305*20260213*195151*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC8YJE8EY6A5HFR00Z5H305~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Data Health Services, Inc.*****46*123456~TRN*2*01KHC8Y4HNP0GVQ5NSVTPZBC0F~STC*A0>17>AY*20260213*WQ*109.2~QTY*90*1~AMT*YU*109.2~HL*3*2*19*1~NM1*85*2*Therapy Associates*****XX*1234567890~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*109.2~HL*4*3*PT*0~NM1*QC*1*Anon*John****MI*U7777788888~TRN*2*111222333~STC*A1>20*20260213*WQ*109.2~DTP*472*RD8*20240101-20240101~SE*25*0001~GE*1*1~IEA*1*980180479~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 422 RequestChangedException 422 response **Schema:** `RequestChangedExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of error. - **`message`** (`string`) (required): Human readable error message explaining why the request was rejected. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Create Claim Attachment (275) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment This endpoint is in **beta** and is subject to change. This endpoint returns a pre-signed URL that you can use to upload a claim attachment file to Stedi. You must complete this step before you can submit an 837 claim with an unsolicited 275 claim attachment. 1. Call this endpoint to initiate the file upload process. 2. The endpoint returns a unique identifier for the attachment file (`attachmentId`) and a pre-signed URL (`uploadURL`). Retain the `attachmentId` so you can include it in your JSON claim submission. You only need to complete this step when submitting claims through Stedi's JSON APIs. If your system already generates X12 EDI, you can send attachments directly through the [Submit Claim Attachment (275) Raw X12](/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12) endpoint instead. This endpoint only supports [unsolicited attachments](/healthcare/submit-claim-attachments#solicited-vs-unsolicited-attachments). ## Paper claims [#paper-claims] Paper claim attachments must be PDF files. Set `contentType` to `application/pdf`, and upload a PDF file to the `uploadUrl`. Stedi checks the uploaded file's contents, not just its content type. If the file isn't a PDF, Stedi doesn't send the paper claim, and Stedi Support contacts you. Visit [Paper claim attachments](/healthcare/submit-paper-claims#paper-claim-attachments) for details. ## API Specification Generate a pre-signed URL to upload a 275 claim attachment file **Endpoint:** `POST /claim-attachments/file` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Request Body **Schema:** `CreateClaimAttachmentFileRequestContent` **Properties:** - **`contentType`** (`string`) (required): Allowed content types for claim attachments. - Allowed values: `application/pdf`, `image/tiff`, `image/jpeg`, `image/jpg`, `image/png` **Example:** ```json { "contentType": "application/pdf" } ``` ### Responses #### 201 CreateClaimAttachmentFile 201 response **Schema:** `CreateClaimAttachmentFileResponseContent` **Properties:** - **`attachmentId`** (`string`) (required): Unique identifier for this attachment. You will use this ID to associate the attachment file with the claim when you submit it to the payer. - **`uploadUrl`** (`string`) (required): A pre-signed URL you can use to upload the file with a `PUT` request. The `PUT` request must include a `Content-Type` header that matches the MIME type you specified for the attachment file. **Example:** ```json { "attachmentId": "d3b3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e", "uploadUrl": "https://s3.amazonaws.com/bucket/key" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of resource not found error. - **`message`** (`string`) (required): Human readable error message explaining why the resource could not be found. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Dental Claims (837D) Raw X12 Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-dental-claims-raw-x12 This endpoint is ideal if you have an existing system that generates X12 EDI files and you want to send them through Stedi. 1. Call this endpoint with a payload in [837 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-dental-x224a3/01GRYB6G91ZX6R1XAFGBMRTBBW). 2. Stedi validates the EDI and sends the claim to the payer. 3. The endpoint returns a response from Stedi in JSON format containing information about the claim you submitted and whether the submission was successful. ## Claim identifier [#claim-identifier] `Loop 2300 REF02` (Claim Identifier for Transmission Intermediaries) has different usage rules depending on your role: - **Providers:** Don't include `Loop 2300 REF02` when `REF01` = `D9` in your claim submission. It's reserved for clearinghouses and intermediaries. You can use `Loop 2300 CLM01` (Patient Control Number) to correlate claims with responses instead. - **Clearinghouses and intermediaries:** You can optionally include `REF*D9` in your 837 submissions. Stedi always returns this value in `Loop 2200D REF*D9` of 277CA claim acknowledgments, allowing you to match these responses to the claim. ## API Specification Submit an 837D dental claim in raw X12 EDI format **Endpoint:** `POST /dental-claims/raw-x12-submission` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents you from sending duplicate claims due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `DentalClaimsRawX12SubmissionRequestContent` **Properties:** - **`x12`** (`string`) (required) **Example:** ```json { "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2050*^*00501*000000042*0*T*>~GS*HC*574183004559*STEDITEST*20260213*205048*42*X*005010X224A2~ST*837*0001*005010X224A2~BHT*0019*00*01KHCCA4V6K00NFPX588G859SJ*20260213*2050*CH~NM1*41*2*ABA Inc*****46*1234567~PER*IC*BILLING DEPARTMENT*TE*3134893157~NM1*40*2*United HealthCare Dental*****46*52133~HL*1**20*1~PRV*BI*PXC*106S00000X~NM1*85*2*ABA Inc*****XX*1999999992~N3*ABA Inc 123 Some St~N4*Denver*CO*802383000~REF*EI*123456789~PER*IC*ABA Inc*TE*3134893157~HL*2*1*22*0~SBR*P*18*1234567890******FI~NM1*IL*1*Doe*John****MI*123412345~N3*1234 Some St~N4*Buckeye*AZ*85326~DMG*D8*20180615*F~NM1*PR*2*United HealthCare Dental*****PI*52133~N3*PO Box 7000~N4*Camden*SC*29000~CLM*12345*832***12>B>1*Y*A*Y*Y~DN2*3*E****JP~REF*G1*20231010012345678~HI*ABK>K081~NM1*82*1*Doe*Jane****XX*1999999992~PRV*PE*PXC*106S00000X~LX*1~SV3*AD>D7140*832**1>2*I*2*****1~TOO*JP*3*M>O~DTP*472*D8*20230428~REF*6R*a0UDo000000dd2dMAA~NM1*82*1*Doe*Jane****XX*1999999992~PRV*PE*PXC*122300000X~SE*35*0001~GE*1*42~IEA*1*000000042~" } ``` ### Responses #### 200 DentalClaimsRawX12Submission 200 response **Schema:** `DentalClaimsRawX12SubmissionResponseContent` **Properties:** - **`claimReference`** (`object`): Information about the claim. - **`claimReference.claimType`** (`string`): This shape is deprecated: Currently not used. - **`claimReference.correlationId`** (`string`): An identifier Stedi assigns to the claim. - **`claimReference.customerClaimNumber`** (`string`): A tracking number that Stedi assigns to the claim. - **`claimReference.formatVersion`** (`string`): The X12 EDI version Stedi used to generate the claim for the payer. This is always `5010`. - **`claimReference.patientControlNumber`** (`string`): The `patientControlNumber` from the original request, if supplied. This is a unique identifier that you assign to the claim so you can track the claim and correlate it with responses from the payer. - **`claimReference.payerID`** (`string`): This shape is deprecated: Please use payerId. - **`claimReference.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`claimReference.rhclaimNumber`** (`string`): A tracking number Stedi assigns to the claim. This is the same as the `correlationId`. - **`claimReference.serviceLines`** (`array of ServiceLineResponseIdentifier objects`): Contains a unique identifier for each service line, listed in the order the service lines were included in the claim. You can use these identifiers to correlate payer responses to specific service lines. - **`claimReference.serviceLines[].lineItemControlNumber`** (`string`): A unique identifier for the service line, matching the value provided for the `claimInformation.serviceLines[].providerControlNumber` property in the claim submission. If you didn't provide a value for `providerControlNumber`, this property contains a randomly generated ULID for the service line. - **`claimReference.submitterId`** (`string`): Stedi's ID for the entity that submitted the claim. - **`claimReference.timeOfResponse`** (`string`): A timestamp for Stedi's response to the claim submission. - **`controlNumber`** (`string`): An identifier for the transaction. - **`editResponses`** (`array of EditResponse objects`): Currently not used. - **`editResponses[].allowOverride`** (`string`) - **`editResponses[].badData`** (`string`) - **`editResponses[].claimCorePath`** (`string`) - **`editResponses[].editActivity`** (`string`) - **`editResponses[].editName`** (`string`) - **`editResponses[].element`** (`string`) - **`editResponses[].errorDescription`** (`string`) - **`editResponses[].fieldIndex`** (`string`) - **`editResponses[].loop`** (`string`) - **`editResponses[].phaseID`** (`string`) - **`editResponses[].qualifierCode`** (`string`) - **`editResponses[].referenceID`** (`string`) - **`editResponses[].segment`** (`string`) - **`editStatus`** (`string`): This shape is deprecated: Currently not used. - **`errors`** (`array of ClaimsError objects`): Errors resulting from claim edits. You must review and fix these errors before resubmitting. - **`errors[].code`** (`string`): The error code. - **`errors[].description`** (`string`): The description of the error code. - **`errors[].followupAction`** (`string`): Recommended followup actions to correct the error. - **`errors[].location`** (`string`): Where the error is located in the original request. - **`errors[].value`** (`string`): The value for the data causing the error. - **`failure`** (`object`): Currently not used. - **`failure.code`** (`string`) - **`failure.description`** (`string`) - **`httpStatusCode`** (`string`): Stedi can return the following status codes: - `200`: Stedi successfully generated the X12 EDI claim format required by the payer. It does not indicate whether the payer has accepted the claim - the payer will respond later with a 277CA containing this information. [Learn more about 277CAs](https://www.stedi.com/docs/healthcare/receive-claim-responses#response-types). - `400`: The request contains one or more problems with the claim data. Examples include missing required fields, invalid values, or incorrect data types. The response includes a message describing the problem. - `403`: The request is not permitted, such as using a test API key to submit a production transaction. - Allowed values: `200 OK`, `400 BAD_REQUEST`, `403 FORBIDDEN` - **`meta`** (`object`): Metadata from Stedi about the request. - **`meta.applicationMode`** (`string`): Indicates where this request can be found for support. - **`meta.billerId`** (`string`): The biller ID assigned to this request. - **`meta.senderId`** (`string`): The sender ID assigned to this request. - **`meta.submitterId`** (`string`): The submitter ID assigned to this request. - **`meta.traceId`** (`string`): The file execution ID, a unique identifier assigned to the processed file within the Stedi platform. - **`payer`** (`object`): Information about the payer for the submitted claim. - **`payer.payerID`** (`string`): This shape is deprecated: Please use payerId. - **`payer.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`payer.payerName`** (`string`): The payer's business name, such as Aetna or Cigna. - **`status`** (`string`): The status of the claim submission. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original claim. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`warnings`** (`array of ClaimsWarning objects`): A list of warnings. Currently not used. - **`warnings[].code`** (`string`): A machine-readable code indicating the type of problem. - **`warnings[].description`** (`string`): A human-readable description of the problem. - **`x12`** (`string`): A [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/claim-responses-overview#277ca-claim-acknowledgment) acceptance or rejection from Stedi in X12 EDI format. It indicates whether the claim has passed Stedi's claim edits. When the claim fails one or more edits, the 277CA contains `STC` segments with information about each error. These are the same error codes that appear in the `errors` array. Note that this 277CA only indicates whether Stedi has accepted or rejected the claim submission. You may receive additional 277CA acceptances or rejections as the claim is routed to the payer. **Example:** ```json { "claimReference": { "correlationId": "01J1M588QT2TAV2N093GNJ998T", "formatVersion": "5010", "patientControlNumber": "22266555", "payerId": "60054", "rhclaimNumber": "01J1M588QT2TAV2N093GNJ998T", "serviceLines": [ { "lineItemControlNumber": "111222333" } ], "timeOfResponse": "2024-07-10T22:05:32.203Z" }, "controlNumber": "000000001", "httpStatusCode": "200 OK", "meta": { "traceId": "b727b8e7-1f00-4011-bc6e-e41444d406d8" }, "payer": { "payerId": "60054", "payerName": "Cigna" }, "status": "SUCCESS", "tradingPartnerServiceId": "60054", "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*1956*^*00501*343800641*0*T*>~GS*HN*STEDITEST*574183004559*20260213*195613*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC96JC6ZRRJ3PB88T7JR7S8*20260213*195613*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC96JC6ZRRJ3PB88T7JR7S8~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*ABA Inc*****46*123456789~TRN*2*01KHC96GBNYA14YRBRJGFR13P7~STC*A0>17>AY*20260213*WQ*832.0~QTY*90*1~AMT*YU*832.0~HL*3*2*19*1~NM1*85*2*ABA Inc*****XX*1999999992~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*832.0~HL*4*3*PT*0~NM1*QC*1*Doe*John****MI*123412345~TRN*2*12345~STC*A1>20*20260213*WQ*832.0~DTP*472*RD8*20230428-20230428~SE*25*0001~GE*1*1~IEA*1*343800641~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 422 RequestChangedException 422 response **Schema:** `RequestChangedExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of error. - **`message`** (`string`) (required): Human readable error message explaining why the request was rejected. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Dental Claims (837D) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-dental-claims This endpoint sends 837D dental claims to payers. 1. Call this endpoint with a JSON payload. 2. Stedi translates your request to the X12 837 EDI format and sends it to the payer. 3. The endpoint returns a response from Stedi in JSON format containing information about the claim you submitted and whether the submission was successful. ## API Specification Submit an 837D dental claim in JSON format **Endpoint:** `POST /dental-claims/submission` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents you from sending duplicate claims due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `DentalClaimsSubmissionRequestContent` **Properties:** - **`assistantSurgeon`** (`object`): Information about the assistant surgeon who rendered the care. Use this object when the rendering providers provided these services in the role of the assistant surgeon. This should be an individual, not an organization, and you should supply at least the surgeon's `lastName`, `taxonomyCode`, and an identifier, which is typically the `npi`. - **`assistantSurgeon.address`** (`object`) - **`assistantSurgeon.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`assistantSurgeon.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`assistantSurgeon.address.city`** (`string`) (required): The city name. - **`assistantSurgeon.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`assistantSurgeon.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`assistantSurgeon.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`assistantSurgeon.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`assistantSurgeon.commercialNumber`** (`string`): The provider's commercial number. - **`assistantSurgeon.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`assistantSurgeon.contactInformation.email`** (`string`): The email address. - **`assistantSurgeon.contactInformation.faxNumber`** (`string`): The fax number. - **`assistantSurgeon.contactInformation.name`** (`string`): The full name of the person or office. - **`assistantSurgeon.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`assistantSurgeon.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`assistantSurgeon.firstName`** (`string`): The assistant surgeon's first name. - **`assistantSurgeon.lastName`** (`string`) (required): The assistant surgeon's last name. You must include either the `lastName` or `organizationName` property in this object. - **`assistantSurgeon.locationNumber`** (`string`): The provider's location number. - **`assistantSurgeon.middleName`** (`string`): The assistant surgeon's middle name or initial. - **`assistantSurgeon.npi`** (`string`): The individual National Provider Identifier (NPI) assigned to the surgeon. - **`assistantSurgeon.providerUpinNumber`** (`string`): Deprecated; do not use. - **`assistantSurgeon.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`assistantSurgeon.suffix`** (`string`): The assistant surgeon's name suffix, such as Jr. or III. - **`assistantSurgeon.taxonomyCode`** (`string`) (required): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. For example, code ` 1223S0112X` is for Oral and Maxillofacial Surgery. - **`billing`** (`object`) (required): Information about the billing provider. - You must provide an `address` that is a physical location such as the office where care is delivered or an administrative facility. - For tax identification, you must include either the provider's Social Security Number (SSN) in the `ssn` property _or_ their Employer Identification Number (EIN) in the `employerId` property, but not both. - If the billing provider has an NPI, you must include it in the `npi` property. If the billing provider does not have an NPI, you must include either the `commercialNumber` or the `locationNumber` for identification. Some payers may require the `npi` **and** either the `commercialNumber` or the `locationNumber` as a secondary identifier. - Some solo providers may use their SSN as their EIN. In this case, submit the SSN in the `ssn` property and leave the `employerId` property blank. - **`billing.address`** (`object`) - **`billing.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billing.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billing.address.city`** (`string`) (required): The city name. - **`billing.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`billing.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`billing.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`billing.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`billing.claimOfficeNumber`** (`string`): Claim Office Number. - **`billing.commercialNumber`** (`string`): The billing provider's commercial number, as assigned by this payer. The commercial number is a unique identifier that the payer assigns to the provider. For providers without an NPI, you must provide either the `commercialNumber` or the `locationNumber` for identification. - **`billing.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`billing.contactInformation.email`** (`string`): The email address. - **`billing.contactInformation.faxNumber`** (`string`): The fax number. - **`billing.contactInformation.name`** (`string`): The full name of the person or office. - **`billing.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`billing.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`billing.employerId`** (`string`): The billing provider's Employer Identification Number (EIN). Typically a string of exactly nine numbers with no separators, unless otherwise instructed by the payer. If you include this value, you cannot include the `ssn`. - **`billing.firstName`** (`string`): The billing provider's first name, if the provider is an individual. - **`billing.lastName`** (`string`): The provider's last name, if the provider is an individual. - **`billing.locationNumber`** (`string`): The billing provider's location number. For providers without an NPI, you must provide either the `commercialNumber` or the `locationNumber` for identification. - **`billing.middleName`** (`string`): The provider's middle name or initial, if the provider is an individual. - **`billing.naic`** (`string`): National Association of Insurance Commissioners (NAIC) Code. - **`billing.npi`** (`string`): The billing provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). Optional. When the billing provider is not assigned an NPI, supply `commercialNumber` or `locationNumber` instead. - **`billing.organizationName`** (`string`): The provider's business name. - **`billing.payerIdentificationNumber`** (`string`): Payer Identification Number. - **`billing.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`billing.providerUpinNumber`** (`string`): Deprecated; do not use. - **`billing.ssn`** (`string`): The billing provider's Social Security Number. Must be a string of exactly nine numbers with no separators. If you include this value, you cannot include the `employerId`. - **`billing.stateLicenseNumber`** (`string`): The billing provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`billing.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`billing.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the billing provider's type and/or area of specialty. - **`claimIdentifier`** (`string`): A code specifying the type of transaction. Defaults to `CH` if not provided. - `31`: Only for use by state Medicaid agencies performing post payment recovery. - `CH`: Use when the transaction contains only fee for service claims or claims with at least one chargeable line item. Also use when it's not clear whether a transaction contains claims or capitated encounters, or if the transaction contains a mix of claims and capitated encounters. - `RP`: Use for capitated encounters. Also use when the transaction is being sent to an entity for purposes other than adjudication of a claim. For example, when you're sending the claim to a state health agency that is using the claim for health data reporting purposes. - Allowed values: `31`, `CH`, `RP` - **`claimInformation`** (`object`) (required) - **`claimInformation.autoAccidentCountryCode`** (`string`): The country code where the accident occurred. Use when `relatedCausesCode` = `AA` and the accident occurred in a country other than US or Canada. - **`claimInformation.autoAccidentStateCode`** (`string`): A code identifying the state or province in which the automobile accident occurred. Use this code when `relatedCausesCode` is set to `AA`. - **`claimInformation.benefitsAssignmentCertificationIndicator`** (`string`) (required): A code indicating whether the patient or an authorized person has authorized the plan to remit payment directly to the provider. Use `W` when the patient refuses to assign benefits. Can be set to `N` - No (Payment should go to the patient), `Y` - Yes (Payment should go directly to the provider), or `W` - Not Applicable (use when patient refuses to assign benefits). - Allowed values: `N`, `W`, `Y` - **`claimInformation.claimChargeAmount`** (`string`) (required): The total dollar amount charged for the services on this claim, expressed as a decimal. For example, `100.50`. This is the total amount before any adjustments or payments. The amount must balance to the sum of the service line charges. - **`claimInformation.claimContractInformation`** (`object`): Required when the submitter is contractually obligated to supply this information on post-adjudicated claims. - **`claimInformation.claimContractInformation.contractAmount`** (`string`): The total dollar amount of the contract, expressed as a decimal. For example, `100.50`. - **`claimInformation.claimContractInformation.contractCode`** (`string`): The contract code. This is a unique identifier for the contract. - **`claimInformation.claimContractInformation.contractPercentage`** (`string`): The allowance or charge percent, expressed as a decimal. For example, `0.80`. - **`claimInformation.claimContractInformation.contractTypeCode`** (`string`) (required): A code identifying the type of contract. Can be set to `02` - Per Diem, `03` - Variable Per Diem, `04` - Flat, `05` - Capitated, `06` - Percent, or `09` - Other. - Allowed values: `02`, `03`, `04`, `05`, `06`, `09` - **`claimInformation.claimContractInformation.contractVersionIdentifier`** (`string`): An additional identifer for the contract. Identifies the revision level of a particular format, program, technique or algorithm. - **`claimInformation.claimContractInformation.termsDiscountPercentage`** (`string`): Terms discount percentage, expressed as a percent, available to the purchaser if an invoice is paid on or before the Terms Discount Due Date. - **`claimInformation.claimDateInformation`** (`object`) - **`claimInformation.claimDateInformation.accidentDate`** (`string`): The date of the accident related to this claim, formatted as `YYYYMMDD`. Required when `relatedCausesCode` is set to `AA` - Auto Accident or `OA` - Other Accident. Also required when `relatedCausesCode` is set to `EM` - Employment and this claim is the result of an accident. - **`claimInformation.claimDateInformation.appliancePlacementDate`** (`string`): The date the appliance was placed, formatted as `YYYYMMDD`. - **`claimInformation.claimDateInformation.repricerReceivedDate`** (`string`): The date the repricing entity received the initial claim, formatted as `YYYYMMDD`. Required when a repricer is passing the claim onto the payer. - **`claimInformation.claimDateInformation.serviceDate`** (`string`): A single service date or a range of service dates. - **`claimInformation.claimFilingCode`** (`string`): A code identifying the type of claim. For example `DS` - Disability. - Use `OF` when submitting Medicare Part D claims. - Use `ZZ` when you don't know the type of insurance. - Some payers reject claims with invalid codes. If you're not sure which code to use, we recommend running a [real-time eligibility check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) and using the value returned in the most relevant `benefitsInformation.insuranceTypeCode` property. Note that the eligibility response uses a different code list than claims, so you may need to map that code value to the appropriate claim filing code. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-filing-indicator-codes) for a complete list. - Allowed values: `11`, `12`, `13`, `14`, `15`, `16`, `17`, `AM`, `BL`, `CH`, `CI`, `DS`, `FI`, `HM`, `LM`, `MA`, `MB`, `MC`, `OF`, `TV`, `VA`, `WC`, `ZZ` - **`claimInformation.claimFrequencyCode`** (`string`) (required): Identify the type of claim. Can be set to: `1` - indicates an original claim, `7` - Indicates the new claim is a replacement or correction, `8` - Indicates the claim is void or canceled - Allowed values: `1`, `7`, `8` - **`claimInformation.claimNotes`** (`array of strings`): Include comments or special instructions related to the claim. Required when the provider needs to include additional information to substantiate the medical treatment that can't be provided elsewhere in the claim submission. You can include up to five objects in this array. - **`claimInformation.claimPricingRepricingInformation`** (`object`): Repricing information to be completed by repricers, not providers. For capitated encounters, pricing or repricing information usually is not applicable and is provided to qualify other information within the claim. - **`claimInformation.claimPricingRepricingInformation.exceptionCode`** (`string`): Code specifying the exception reason for consideration of out-of-network health care services. This is the reason generated by the third-party health organization. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#exception-codes-2) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6` - **`claimInformation.claimPricingRepricingInformation.policyComplianceCode`** (`string`) - Allowed values: `1`, `2`, `3`, `4`, `5` - **`claimInformation.claimPricingRepricingInformation.pricingMethodologyCode`** (`string`) (required): Code indicating the pricing or repricing methodology. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#pricing-methodology-codes-2) for a complete list. - Allowed values: `00`, `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14` - **`claimInformation.claimPricingRepricingInformation.rejectReasonCode`** (`string`) - Allowed values: `T1`, `T2`, `T3`, `T4`, `T5`, `T6` - **`claimInformation.claimPricingRepricingInformation.repricedAllowedAmount`** (`string`) (required): The dollar amount, expressed as a decimal. For example, `100.50`. - **`claimInformation.claimPricingRepricingInformation.repricedApprovedAmbulatoryPatientGroupAmount`** (`string`): The dollar amount, expressed as a decimal. - **`claimInformation.claimPricingRepricingInformation.repricedApprovedAmbulatoryPatientGroupCode`** (`string`): The code indicating the type of repricing. - **`claimInformation.claimPricingRepricingInformation.repricedSavingAmount`** (`string`): The dollar amount, expressed as a decimal. - **`claimInformation.claimPricingRepricingInformation.repricingOrganizationIdentifier`** (`string`): The identifier of the organization that repriced the claim. - **`claimInformation.claimPricingRepricingInformation.repricingPerDiemOrFlatRateAmount`** (`string`): The pricing rate associated with per diem or flat rate repricing, expressed as a decimal. - **`claimInformation.claimSupplementalInformation`** (`object`): Additional information or documentation required for the claim. This is where you can include information about [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments), if applicable. - **`claimInformation.claimSupplementalInformation.adjustedRepricedClaimNumber`** (`string`): Required when the repricer believes this information is necessary. Providers should not complete this property. - **`claimInformation.claimSupplementalInformation.claimControlNumber`** (`string`): This is the Payer Claim Control Number (PCCN) for an existing claim that this claim is meant to replace or cancel. This property is generally **required** when the `claimInformation.claimFrequencyCode` is set to `7` or `8`. One exception to this guidance is Original Medicare, which specifies that you omit the PCCN from resubmissions. Visit [Resubmit or cancel claims](https://www.stedi.com/docs/healthcare/resubmit-cancel-claims) for complete details and information about where to find the PCCN for an existing claim. - **`claimInformation.claimSupplementalInformation.claimNumber`** (`string`): The claim number assigned by clearinghouse, van, etc. Stedi overwrites this value when it sends the claim to the payer, so you shouldn't include this property in your request. We strongly recommend using the `claimInformation.patientControlNumber` property as your claim tracking ID. - **`claimInformation.claimSupplementalInformation.predeterminationOfBenefitsIdentifier`** (`string`): The Predetermination of Benefits Identification Number assigned by the payer. Required for services that have been previously predetermined and are now being submitted for payment. The identifier you supply here applies to the entire claim. - **`claimInformation.claimSupplementalInformation.priorAuthorizationNumber`** (`string`): Required when an authorization number is assigned by the payer or UMO _and_ the services on this claim were preauthorized. This authorization number applies to the payer you listed in the `receiver` object. If you need to include authorization numbers for other payers, you can include them in `claimInformation.otherSubscriberInformation.otherPayerName.otherPayerPriorAuthorizationNumber`. The UMO (Utilization Management Organization) is generally the entity empowered to make a decision regarding the outcome of a health services review or the owner of information. If there are multiple prior authorization numbers associated with this claim, send one here and then override it as necessary for each service line in `claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization`. - **`claimInformation.claimSupplementalInformation.referralNumber`** (`string`): Required when a referral number is assigned by the payer or Utilization Management Organization (UMO) _and_ a referral is involved. - **`claimInformation.claimSupplementalInformation.reportInformation`** (`object`) - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `B4` - Referral Form or `DA` - Dental Models. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `B4`, `DA`, `DG`, `EB`, `OZ`, `P6`, `RB`, `RR` - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. Set this to `EL` when you plan to submit attachments electronically through Stedi APIs. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.claimSupplementalInformation.reportInformations`** (`array of DentalReportInformation objects`): An array of report information for the claim. Use this when you need to submit multiple report information records. You can submit up to 10 objects in this array. Required when you plan to submit [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for the claim electronically through Stedi APIs or SFTP, when there is a paper attachment following this claim, or when the provider deems it necessary to identify that they have additional information at their office that is available upon request. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `B4` - Referral Form or `DA` - Dental Models. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `B4`, `DA`, `DG`, `EB`, `OZ`, `P6`, `RB`, `RR` - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. Set this to `EL` when you plan to submit attachments electronically through Stedi APIs. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.claimSupplementalInformation.repricedClaimNumber`** (`string`): Required when the repricer believes this information is necessary. Providers should not complete this property. - **`claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode`** (`string`): Code indicating the reason for the service authorization exception. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#service-authorization-exception-codes) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7` - **`claimInformation.delayReasonCode`** (`string`): Code indicating the reason for the delay in claim submission. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#delay-reason-codes) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `15` - **`claimInformation.fileInformation`** (`string`): Please use the `fileInformationList` array instead. - **`claimInformation.fileInformationList`** (`array of strings`): An array of additional information items the payer requested. Not commonly used. - **`claimInformation.healthCareCodeInformation`** (`array of DentalHealthCareInformation objects`): Details about the patient's healthcare diagnosis. Only required when the diagnosis may have an impact on the adjudication of the claim in cases where specific dental procedures may minimize the risks associated with the connection between the patient's oral and systemic health conditions. - Use `ABK` as the type for the principal diagnosis code and `ABF` for any other diagnosis codes you include. - Use one `ABK` code as the first object, and then you can submit up to 3 `ABF` codes as needed. If you need to submit more codes than this, you must create additional, separate claims. - **`claimInformation.healthCareCodeInformation[].diagnosisCode`** (`string`) (required): The diagnosis code. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - **Don't** submit the decimal point for ICD codes. The decimal point is implied. - **Don't** submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the [Value Set Authority Center](https://vsac.nlm.nih.gov/context/cs). If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`claimInformation.healthCareCodeInformation[].diagnosisTypeCode`** (`string`) (required): Code indicating the specific industry code list. Can be set to `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `ABF` - International Classification of Diseases Clinical Modification (ICD-10-CM) Diagnosis, `TQ` Systemized Nomenclature of Dentistry (SNODENT). - Allowed values: `ABK`, `ABF`, `TQ` - **`claimInformation.orthodonticTotalMonthsOfTreatment`** (`object`) - **`claimInformation.orthodonticTotalMonthsOfTreatment.monthsCount`** (`number`): The estimated number of treatment months, expressed as a decimal. - **`claimInformation.orthodonticTotalMonthsOfTreatment.monthsRemaining`** (`number`): The number of months remaining in the treatment, expressed as a decimal. - **`claimInformation.orthodonticTotalMonthsOfTreatment.treatmentIndicator`** (`string`): The only allowed value is `Y`, which indicates that services reported in this claim are for orthodontic purposes. Only include this property if you haven't set the `monthsCount` or `monthsRemaining` properties. - **`claimInformation.otherSubscriberInformation`** (`array of DentalOtherSubscriberInformation objects`): Required when other payers are known to potentially be involved in paying on this claim. This object contains information about other health plans under which the patient has coverage. It's used for coordination of benefits scenarios. - **`claimInformation.otherSubscriberInformation[].benefitsAssignmentCertificationIndicator`** (`string`) (required): Code indicating whether or not the insured has authorized the plan to remit payment directly to the provider. Can be set to `N` - No (Payment should go to the patient), `Y` - Yes (Payment should go directly to the provider), or `W` - Not Applicable. - Allowed values: `N`, `W`, `Y` - **`claimInformation.otherSubscriberInformation[].claimFilingIndicatorCode`** (`string`): A code identifying the type of claim. For example `DS` - Disability. Use `OF` when submitting Medicare Part D claims. Use `ZZ` when you don't know the type of insurance. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-filing-indicator-codes) for a complete list. - Allowed values: `11`, `12`, `13`, `14`, `15`, `16`, `17`, `AM`, `BL`, `CH`, `CI`, `DS`, `FI`, `HM`, `LM`, `MA`, `MB`, `MC`, `OF`, `TV`, `VA`, `WC`, `ZZ` - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments`** (`array of ClaimAdjustment objects`): Use this object to report prior payers' claim level adjustments that cause the amount paid to differ from the amount originally charged. Codes and associated amounts must come from either paper remittance advice or 835s (Electronic Remittance Advice) received on the claim. When the information originates from a paper remittance advice that does not use the standard Claim Adjustment Reason Codes, you must convert them to standard Claim Adjustment Reason Codes. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails`** (`array of ClaimAdjustmentDetails objects`) (required) - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails[].adjustmentAmount`** (`string`) (required): The dollar amount of the adjustment, expressed as a decimal. For example, `100.50`. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails[].adjustmentQuantity`** (`string`): The units of service being adjusted. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentDetails[].adjustmentReasonCode`** (`string`) (required): Code identifying the detailed reason the adjustment was made. Visit the X12 [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) for a complete list. - **`claimInformation.otherSubscriberInformation[].claimLevelAdjustments[].adjustmentGroupCode`** (`string`) (required): Code identifying the general category of payment adjustment. Can be set to `CO` - Contractual Obligations, `CR` - Correction and Reversals, `OA` - Other Adjustments, `PI` - Payor Initiated Reductions, or `PR - Patient Responsibility. - Allowed values: `CO`, `CR`, `OA`, `PI`, `PR` - **`claimInformation.otherSubscriberInformation[].individualRelationshipCode`** (`string`) (required): Code identifying the relationship to the person insured. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#individual-relationship-codes) for a complete list. - Allowed values: `01`, `18`, `19`, `20`, `21`, `39`, `40`, `53`, `G8` - **`claimInformation.otherSubscriberInformation[].insuranceGroupOrPolicyNumber`** (`string`): The group or policy number. - **`claimInformation.otherSubscriberInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy within a specific insurance program. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#insurance-type-codes) for a complete list. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47` - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication`** (`object`): Claim-level data related to the adjudication of Medicare claims not related to an inpatient setting. Required when outpatient adjudication information is reported in the remittance advice _or_ when you need to report remark codes. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.claimPaymentRemarkCode`** (`array of strings`): The remark code. Visit the X12 [Remittance Advice Remark Codes](https://x12.org/codes/remittance-advice-remark-codes) for a complete list. You can include up to five codes in this array. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.hcpcsPayableAmount`** (`string`): The claim Health Care Financing Administration Common Procedural Coding System (HCPCS) payable amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.nonPayableProfessionalComponentBilledAmount`** (`string`): The professional component amount billed but not payable, expressed as a decimal. - **`claimInformation.otherSubscriberInformation[].medicareOutpatientAdjudication.reimbursementRate`** (`string`): The reimbursement percentage, expressed as a decimal. - **`claimInformation.otherSubscriberInformation[].nonCoveredChargeAmount`** (`string`): Required when the destination payer's cost avoidance policy allows providers to bypass claim submission to the otherwise prior payer identified in `otherSubscriberInformation.otherPayerName`. The amount must equal the total claim charge amount you reported in `claimInformation.claimChargeAmount`. - **`claimInformation.otherSubscriberInformation[].otherInsuredGroupName`** (`string`): The name of the health plan. - **`claimInformation.otherSubscriberInformation[].otherPayerAssistantSurgeon`** (`object`): Information about the assistant surgeon. - **`claimInformation.otherSubscriberInformation[].otherPayerAssistantSurgeon.entityTypeQualifier`** (`string`) (required) - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation[].otherPayerAssistantSurgeon.otherPayerAssistantSurgeonIdentifier`** (`array of OtherPayerAssistantSurgeonIdentifierItem objects`) (required): An identifier for the assistant surgeon. - **`claimInformation.otherSubscriberInformation[].otherPayerAssistantSurgeon.otherPayerAssistantSurgeonIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerAssistantSurgeon.otherPayerAssistantSurgeonIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerAssistantSurgeon.otherPayerAssistantSurgeonIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and shouldn't be used in new claims. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider`** (`array of OtherPayerBillingProvider objects`): Information about the billing provider. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].entityTypeQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `1` - Person or `2` - Non-Person Entity. - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier`** (`array of OtherPayerBillingProviderIdentifierItem objects`) (required): Identifiers for the billing provider. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerBillingProvider[].otherPayerBillingProviderIdentifier[].qualifier`** (`string`) (required): Set to `LU` - Location Number, or `G2` - Provider Commercial Number. - **`claimInformation.otherSubscriberInformation[].otherPayerName`** (`object`) (required): Details about the other payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress`** (`object`) - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.city`** (`string`) (required): The city name. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerAdjudicationOrPaymentDate`** (`string`): The date the other payer adjudicated the claim. Required when this payer has previously adjudicated the claim and you aren’t including a value for `LineAdjudicationInformation.adjudicationOrPaymentDate`. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerClaimAdjustmentIndicator`** (`boolean`): The only valid value is `true`. Required when Required when the claim is being sent in the payer-to-payer COB model AND the destination payer is secondary to this payer AND this payer has re-adjudicated the claim. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerClaimControlNumber`** (`string`): The claim control number assigned by this payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier`** (`string`) (required): The identifier specified in `otherPayerIdentifierCode`. When sending Line Adjudication Information for this payer, the identifier sent in `lineAdjudicationInformation.otherPayerPrimaryIdentifier` must match this value. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifierTypeCode`** (`string`) (required): Code designating the type of identifier. Can be set to `PI` - Payor Identification or `XV` - Centers for Medicare/Medicaid Services PlanID. `XV` is deprecated. - Allowed values: `PI`, `XV` - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerOrganizationName`** (`string`) (required): The payer's organization name. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerPredeterminationIdentification`** (`string`): The authorization number assigned by this payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerPriorAuthorizationNumber`** (`string`): The authorization number assigned by this payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerPriorAuthorizationOrReferralNumber`** (`string`): The referral number assigned by this payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier`** (`array of OtherPayerSecondaryIdentifierItem objects`): An additional identification number to identify the other payer. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerSecondaryIdentifier[].qualifier`** (`string`) (required): Set to `2U` - Payer Identification Number, `EI` - Employer Identification Number, `FY` - Claim Office Number, or `NF` - National Association of Insurance Commissioners (NAIC) Code. Only set `qualifier` to `2U` when `otherPayerIdentifierTypeCode` is `XV`. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider`** (`array of OtherPayerReferringProvider objects`): Information about the provider who directed the patient to the rendering provider for care. For example, a primary care physician may refer patients to a specialist. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier`** (`array of OtherPayerReferringProviderIdentifierItem objects`) (required): Identifiers for the referring provider. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerReferringProvider[].otherPayerReferringProviderIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider`** (`array of OtherPayerRenderingProvider objects`): Information about the rendering provider. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].entityTypeQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `1` - Person or `2` - Non-Person Entity. - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier`** (`array of OtherPayerRenderingProviderIdentifierItem objects`): Identifiers for the rendering provider. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerRenderingProvider[].otherPayerRenderingProviderSecondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, `LU` - Location Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation`** (`array of OtherPayerServiceFacilityLocation objects`): Information about the service facility location. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier`** (`array of OtherPayerServiceFacilityLocationSecondaryIdentifierItem objects`) (required): A secondary identifier for the service facility location. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerServiceFacilityLocation[].otherPayerServiceFacilityLocationSecondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `LU` - Location Number, or `G2` - Provider Commercial Number. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider`** (`array of OtherPayerSupervisingProvider objects`): Information about the supervising provider. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier`** (`array of OtherPayerSupervisingProviderIdentifierItem objects`) (required): Identifiers for the supervising provider. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.otherSubscriberInformation[].otherPayerSupervisingProvider[].otherPayerSupervisingProviderIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `1G` - Provider UPIN Number, `LU` - Location Number or `G2` - Provider Commercial Number. Note that UPIN is deprecated and shouldn't be used for new claims. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName`** (`object`) (required): The person or entity who is the primary policyholder for the other payer's health plan. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAdditionalIdentifiers`** (`array of strings`): The primary policyholder's Social Security Number. The Social Security Number must be a string of exactly nine numbers with no separators. For example `123456789`. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress`** (`object`) - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.city`** (`string`) (required): The city name. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredFirstName`** (`string`): The primary policyholder's first name, if they are an individual. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredIdentifier`** (`string`) (required): The identifier you specified in `otherInsuredIdentifierTypeCode`. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredIdentifierTypeCode`** (`string`) (required): Code identifying the type of identifier. Can be set to `II` - Standard Unique Health Identifier for each individual in the United States or `MI` - Member Identification Number. The code `MI` should be the subscriber's identification number as assigned by the payer, such as their subscriber ID. You should also use `MI` in claims submitted to the Indian Health Service/Contract Health Services (IHS/CHS) Fiscal Intermediary for the purpose of reporting the Tribe Residency Code (Tribe County State). For IHS/CHS claims, you should also put the SSN in the `otherInsuredAdditionalIdentifier` property.) - Allowed values: `II`, `MI` - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredLastName`** (`string`) (required): The primary policyholder's last name or organizational name. Don't include the primary policyholder's name suffix, such as Jr. or III. Use the designated `otherInsuredNameSuffix` property instead. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredMiddleName`** (`string`): The primary policyholder's middle name or initial, if they are an individual. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredNameSuffix`** (`string`): The primary policyholder's name suffix, such as Jr. or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`claimInformation.otherSubscriberInformation[].otherSubscriberName.otherInsuredQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `1` - Person or `2` - Non-Person Entity. - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation[].payerPaidAmount`** (`string`): The total amount in dollars the payer has paid on this claim. It is acceptable to set this to `0` (Zero). This is required when you include the `payToPlan` object, and you should set it to the amount the Medicaid agency actually paid. - **`claimInformation.otherSubscriberInformation[].paymentResponsibilityLevelCode`** (`string`) (required): Code identifying the payer's level of responsibility for paying this claim. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#payment-responsibility-sequence-number-codes) for a complete list. - Either this property or `subscriber.paymentResponsibilityLevelCode` must be set to `P` to indicate the primary insurance payer. Stedi rejects claims - including secondary and tertiary claims - that don't include information for the primary payer. - You may need to use other codes if the patient has multiple insurance policies. For example, if a patient is covered by both Medicare and an employer-sponsored commercial plan, you could bill the commercial payer first as `P` and then bill the Medicare payer second as `S`. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `P`, `S`, `T`, `U` - **`claimInformation.otherSubscriberInformation[].releaseOfInformationCode`** (`string`) (required): Code indicating whether the provider has on file a signed statement by the patient authorizing the release of medical data to other organizations. Can be set to `I` - Informed Consent to Release Medical Information or `Y` - Yes. Code `I` is required when the provider has not collected a signature AND state or federal laws do not require a signature be collected. Code `Y` is required when the provider has collected a signature OR when state or federal laws require a signature be collected. - Allowed values: `I`, `Y` - **`claimInformation.otherSubscriberInformation[].remainingPatientLiability`** (`string`): This is the remaining amount (as determined by the provider) to be paid after the other payer identified in the `otherPayerName` object has adjudicated the claim. - **`claimInformation.patientAmountPaid`** (`string`): The total amount in dollars the patient or their representatives have paid on this claim. For example, `20.50`. This includes any co-payments, co-insurance, or other amounts already collected from the patient. If the patient has not paid anything, you should omit this property entirely - **don't** set it to `0`. - **`claimInformation.patientControlNumber`** (`string`) (required): An identifier you assign to the claim. We **strongly recommend** submitting a unique value for this property so you can use it to correlate this claim with responses, such as the [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/receive-claim-responses#correlate-277ca) and the [835 ERA](https://www.stedi.com/docs/healthcare/receive-claim-responses#correlate-835-era). - Use random strings. The identifier should be more complex than a simple sequential number and should be hard to guess. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters from the [basic character set](https://www.stedi.com/docs/healthcare/submit-dental-claims#character-restrictions) to generate unique IDs. - Keep it to 17 characters max. Some payers cut off values longer than 17 characters in 277CAs and ERAs, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](https://www.stedi.com/docs/healthcare/submit-dental-claims#character-restrictions), and avoid special characters that are only available in the extended character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - **`claimInformation.placeOfServiceCode`** (`string`) (required): Code identifying the type of facility where the services were or may be performed. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `66`, `71`, `72`, `81`, `99` - **`claimInformation.planParticipationCode`** (`string`) - Allowed values: `A`, `C` - **`claimInformation.predeterminationOfBenefits`** (`boolean`): Required when the entire claim is being submitted as a predetermination of benefits. Predetermination of benefits claims are submitted in advance of services to get an estimate of what the patient's health plan will pay. - Can be set to `true` to indicate predetermination of dental benefits. - Not all dental payers support predetermination of benefits claims. - Some payers prohibit setting `claimInformation.claimDateInformation.serviceDate` for predetermination of benefits claims. Refer to your payer's specific guidelines for more information. - **`claimInformation.propertyCasualtyClaimNumber`** (`string`): The agency claim number for this transaction. Used when services included in this claim are part of a property and casualty claim. - **`claimInformation.relatedCausesCode`** (`array of strings`): Code identifying an accompanying cause of an illness, injury or an accident. Can be set to `AA` - Auto Accident, `EM` - Employment, or `OA` - Other Accident. You can include up to two codes in this array. - **`claimInformation.releaseInformationCode`** (`string`) (required): Indicates whether the provider has on file a signed statement by the patient authorizing the release of medical data to other organizations. Can be set to `Y` - Yes, or `I` - Informed Consent to Release Medical Information for Conditions or Diagnoses Regulated by Federal Statues. Use `I` when the provider has not collected a signature AND state or federal laws do not require a signature be collected. - Allowed values: `I`, `Y` - **`claimInformation.serviceFacilityLocation`** (`object`): Required when the location for the service is different from the billing provider's address. The purpose of this object is to identify specifically where the service was rendered. This can be healthcare facilities, such as surgical centers or reference labs, OR the patient's address when services were rendered in their home. - Only include this object when the service facility location is **different** from the billing provider's address. If you include this object when the address is the same, Stedi omits all of the service facility location information from the claim submission, including the name and any identifiers. - For telehealth services, the service facility location is the provider's address, even though the patient may have been in their home or elsewhere when receiving services. - Don't use this object when reporting ambulance services - use `ambulancePickupLocation` and `ambulanceDropoffLocation` instead. - Sometimes the billing provider is an actual physician group that is located at the same address as a hospital, but is in fact a separate entity. In this case, you can differentiate the service facility location by including the specific suite or building number of the physician group. This ensures that the service facility location is different from the billing provider's address and is reported accurately. - **`claimInformation.serviceFacilityLocation.address`** (`object`) (required) - **`claimInformation.serviceFacilityLocation.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceFacilityLocation.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceFacilityLocation.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceFacilityLocation.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceFacilityLocation.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceFacilityLocation.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceFacilityLocation.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceFacilityLocation.npi`** (`string`): The organization [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the service facility. Only include this property when the service facility is not a component or subpart of the `billing` provider. Don't include when the service facility is the patient's home. - **`claimInformation.serviceFacilityLocation.organizationName`** (`string`) (required): The laboratory or facility name. When services were rendered in the patient's home, we recommend setting this to `Residence` or something similar. - **`claimInformation.serviceFacilityLocation.phoneExtension`** (`string`): The telephone extension, if applicable. Only submit the numeric extension. For example, don't include data that indicates an extension, such as 'ext.' or 'x-'. - **`claimInformation.serviceFacilityLocation.phoneName`** (`string`): The full name of the person or office. - **`claimInformation.serviceFacilityLocation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceFacilityLocation.secondaryIdentifier`** (`array of ClaimServiceFacilityLocationSecondaryIdentifierItem objects`): Secondary identifiers for the service facility location. Used when another identifier is needed for the claims processor to identify the facility or when the entity is not a healthcare provider and does not have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`claimInformation.serviceFacilityLocation.secondaryIdentifier[].identifier`** (`string`) (required): The identifier. The format and length of this value depends on the `qualifier` you set. - **`claimInformation.serviceFacilityLocation.secondaryIdentifier[].otherIdentifier`** (`string`): The identifier for the other payer who provided this reference number. This is only required when the reference number is provided by the non-destination payer. The value must match the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceFacilityLocation.secondaryIdentifier[].qualifier`** (`string`) (required): Set to `0B` - State License Number, `LU` - Location Number, or `G2` - Provider Commercial Number. - **`claimInformation.serviceLines`** (`array of DentalServiceLine objects`) (required): Information about one or more services rendered to the patient. - Each service line must be a unique service event as defined by the payer's billing policies. This means that you can use the same procedure code on multiple service lines as long as they are distinct events. - Some procedure codes are date-specific. In these cases, you may need to create a separate service line with that code for each applicable date of service, even if the episode of care extended over multiple days. - Service lines can share the same dates of service if the patient received multiple services on the same day. - **`claimInformation.serviceLines[].assistantSurgeon`** (`object`) - **`claimInformation.serviceLines[].assistantSurgeon.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].assistantSurgeon.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].assistantSurgeon.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].assistantSurgeon.locationNumber`** (`string`): The provider's location number. - **`claimInformation.serviceLines[].assistantSurgeon.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].assistantSurgeon.npi`** (`string`): The individual National Provider Identifier (NPI) assigned to the provider. - **`claimInformation.serviceLines[].assistantSurgeon.organizationName`** (`string`): The provider's business name. - **`claimInformation.serviceLines[].assistantSurgeon.providerUpinNumber`** (`string`): Deprecated; do not use. - **`claimInformation.serviceLines[].assistantSurgeon.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`claimInformation.serviceLines[].assistantSurgeon.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].assistantSurgeon.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`claimInformation.serviceLines[].contractInformation`** (`object`): Required when the submitter is contractually obligated to supply this information on post-adjudicated claims. - **`claimInformation.serviceLines[].contractInformation.contractAmount`** (`string`): The total dollar amount of the contract, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].contractInformation.contractCode`** (`string`): The contract code. This is an identifier for the contract. - **`claimInformation.serviceLines[].contractInformation.contractPercentage`** (`string`): The allowance or charge percent, expressed as a decimal. For example, `0.80`. - **`claimInformation.serviceLines[].contractInformation.contractTypeCode`** (`string`) (required): Code indicating the type of contract. Can be set to `02` - Per Diem, `03` - Variable Per Diem, `04` - Flat, `05` - Capitated, `06` - Percent, or `09` - Other. - Allowed values: `02`, `03`, `04`, `05`, `06`, `09` - **`claimInformation.serviceLines[].contractInformation.contractVersionIdentifier`** (`string`): An additional identifier for the contract. Identifies the revision level of a particular format, program, technique or algorithm. - **`claimInformation.serviceLines[].contractInformation.termsDiscountPercentage`** (`string`): Terms discount percentage, expressed as a decimal, available to the purchaser if an invoice is paid on or before the Terms Discount Due Date. - **`claimInformation.serviceLines[].dentalService`** (`object`) (required) - **`claimInformation.serviceLines[].dentalService.compositeDiagnosisCodePointers`** (`object`): Diagnosis code pointers in order of importance to this service line. These pointers are an index to the ICD-10-CM codes you included in the `claimInformation.healthCareCodeInformation` object array. The pointer values can be from 1 to 12 (integer numbers). - You **must** set at least one pointer for the primary diagnosis. Then, you can add up to three additional pointers (up to four in total). - The number of pointers cannot exceed the number of diagnosis codes in the `claimInformation.healthCareCodeInformation` object array. For example, if you only supplied one diagnosis code, then the only valid pointer value is 1. - Don't put ICD-10-CM codes here - they belong in `claimInformation.healthCareCodeInformation`. - **`claimInformation.serviceLines[].dentalService.compositeDiagnosisCodePointers.diagnosisCodePointers`** (`array of strings`) (required): A diagnosis code pointer for this service line. - **`claimInformation.serviceLines[].dentalService.description`** (`string`): A free form description to clarify the procedure code and any procedure modifiers, as needed. - **`claimInformation.serviceLines[].dentalService.lineItemChargeAmount`** (`string`) (required): The total charge amount for the service, including the provider's base charge and any applicable tax or postage. It is acceptable to set this to `0` (zero). - **`claimInformation.serviceLines[].dentalService.oralCavityDesignation`** (`array of strings`): Required when the nomenclature associated with the procedure reported in `claimInformation.serviceLines[].dentalService.procedureCode` refers to a quadrant or arch and the area of the oral cavity is not uniquely defined. - You can include up to five codes per service line. - You should report individual tooth numbers in one or more `teethInformation` objects. - **`claimInformation.serviceLines[].dentalService.placeOfServiceCode`** (`string`): Code identifying the type of facility where the services were or may be performed. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`claimInformation.serviceLines[].dentalService.procedureCode`** (`string`) (required): The procedure code. - **`claimInformation.serviceLines[].dentalService.procedureCount`** (`number`): The number of procedures performed. - **`claimInformation.serviceLines[].dentalService.procedureModifiers`** (`array of strings`): Modifier codes that clarify or improve the reporting accuracy of the associated procedure code. You can include up to four modifiers in this array. Only include modifier codes when required; otherwise, do not send. - **`claimInformation.serviceLines[].dentalService.prosthesisCrownOrInlayCode`** (`string`): Code indicating the placement status for the dental work. Can be set to `I` - Initial Placement or `R` - Replacement. When set to `R`, you must include either the `priorPlacementDate` or `estimatedPriorPlacementDate` properties within the `claimInformation.serviceLines[].serviceLineDateInformation` object. - Allowed values: `I`, `R` - **`claimInformation.serviceLines[].fileInformation`** (`array of strings`): Used to send additional data specifically requested by the payer. Not commonly used. - **`claimInformation.serviceLines[].lineAdjudicationInformation`** (`array of DentalLineAdjudicationInformation objects`): Includes service line adjudication information for coordination of benefits between the initial payers of a health care claim and all subsequent payers. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].adjudicationOrPaymentDate`** (`string`) (required): The date the other payer adjudicated or paid the claim, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].bundledOrUnbundledLineNumber`** (`string`): The LX assigned number of the service line into which this service line is bundled. It's only used to bundle service lines. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation`** (`array of ClaimAdjustment objects`): Required when the payer made line level adjustments which caused the amount paid to differ from the amount originally charged. You can include up to five objects in this array. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails`** (`array of ClaimAdjustmentDetails objects`) (required) - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails[].adjustmentAmount`** (`string`) (required): The dollar amount of the adjustment, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails[].adjustmentQuantity`** (`string`): The units of service being adjusted. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentDetails[].adjustmentReasonCode`** (`string`) (required): Code identifying the detailed reason the adjustment was made. Visit the X12 [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) for a complete list. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation[].adjustmentGroupCode`** (`string`) (required): Code identifying the general category of payment adjustment. Can be set to `CO` - Contractual Obligations, `CR` - Correction and Reversals, `OA` - Other Adjustments, `PI` - Payor Initiated Reductions, or `PR - Patient Responsibility. - Allowed values: `CO`, `CR`, `OA`, `PI`, `PR` - **`claimInformation.serviceLines[].lineAdjudicationInformation[].otherPayerPrimaryIdentifier`** (`string`) (required): The payer ID for the payer responsible for reimbursement. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].paidServiceUnitCount`** (`string`) (required): The number of paid units from the remittance advice. expressed as a decimal. When paid units are not present on the remittance advice, use the original billed units. The maximum length for this property is 8 digits excluding the decimal. When a decimal is used, the maximum number of digits allowed to the right of the decimal is three. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureCode`** (`string`) (required): The procedure code. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureCodeDescription`** (`string`): The meaning of the procedure code. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureModifier`** (`array of strings`): Modifiers that convey special circumstances related to the performance of the service. You can include up to four modifiers in this array. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].remainingPatientLiability`** (`string`): The amount of the service line that the patient is still responsible for, expressed as a decimal. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].serviceIdQualifier`** (`string`) (required) - Allowed values: `AD`, `ER` - **`claimInformation.serviceLines[].lineAdjudicationInformation[].serviceLinePaidAmount`** (`string`) (required): The amount paid for this service line, expressed as a decimal. Zero (0) is an acceptable value. - **`claimInformation.serviceLines[].linePricingRepricingInformation`** (`object`): Repricing information about the line item. This information is completed by repricers, not providers. For capitated encounters, pricing or repricing information usually is not applicable and is provided to qualify other information within the claim. - **`claimInformation.serviceLines[].linePricingRepricingInformation.exceptionCode`** (`string`): Code specifying the exception reason for consideration of out-of-network health care services. This is the reason generated by the third-party health organization. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#exception-codes-2) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6` - **`claimInformation.serviceLines[].linePricingRepricingInformation.measurementUnitCode`** (`string`) - Allowed values: `UN` - **`claimInformation.serviceLines[].linePricingRepricingInformation.policyComplianceCode`** (`string`) - Allowed values: `1`, `2`, `3`, `4`, `5` - **`claimInformation.serviceLines[].linePricingRepricingInformation.pricingMethodologyCode`** (`string`) (required): Code indicating the pricing or repricing methodology. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#pricing-methodology-codes-2) for a complete list. - Allowed values: `00`, `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14` - **`claimInformation.serviceLines[].linePricingRepricingInformation.rejectReasonCode`** (`string`) - Allowed values: `T1`, `T2`, `T3`, `T4`, `T5`, `T6` - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedAllowedAmount`** (`string`) (required): The dollar amount, expressed as a decimal. For example, `100.50`. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedApprovedHCPCSCode`** (`string`): The procedure code for the service that was repriced. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedApprovedServiceUnitCount`** (`number`): The number of units for the service that was repriced, expressed as a decimal. The maximum length for this field is 8 digits excluding the decimal. When a decimal is used, the maximum number of digits allowed to the right of the decimal is three. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricedSavingAmount`** (`string`): The dollar amount, expressed as a decimal. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricingOrganizationIdentifier`** (`string`): The identifier of the organization that repriced the claim. - **`claimInformation.serviceLines[].linePricingRepricingInformation.repricingPerDiemOrFlatRateAmount`** (`string`): The pricing rate associated with per diem or flat rate repricing, expressed as a decimal. - **`claimInformation.serviceLines[].linePricingRepricingInformation.serviceIdQualifier`** (`string`) - Allowed values: `AD` - **`claimInformation.serviceLines[].postageTaxAmount`** (`string`): The amount of the postage, formatted as a decimal. When you include this property, the total `lineItemChargeAmount` for this service line must include this postage value. - **`claimInformation.serviceLines[].providerControlNumber`** (`string`): A unique identifier for this service line within the claim. It appears in the 835 (ERA) response as `lineItemControlNumber`, allowing you to correlate ERAs to the specific service lines from the original claim. If you don't set this property, Stedi uses a random ULID. Stedi returns service line identifiers in the `claimReference.serviceLines[].lineItemControlNumber` object of the synchronous API response. - **`claimInformation.serviceLines[].renderingProvider`** (`object`) - **`claimInformation.serviceLines[].renderingProvider.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].renderingProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].renderingProvider.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].renderingProvider.locationNumber`** (`string`): The provider's location number. - **`claimInformation.serviceLines[].renderingProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].renderingProvider.npi`** (`string`): The National Provider Identifier (NPI) assigned to the provider. - **`claimInformation.serviceLines[].renderingProvider.organizationName`** (`string`): The provider's business name. - **`claimInformation.serviceLines[].renderingProvider.providerUpinNumber`** (`string`): Deprecated; do not use. - **`claimInformation.serviceLines[].renderingProvider.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`claimInformation.serviceLines[].renderingProvider.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].renderingProvider.taxonomyCode`** (`string`) (required): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`claimInformation.serviceLines[].salesTaxAmount`** (`string`): Sales tax, formatted as a decimal. When you include this property, the total `lineItemChargeAmount` for this service line must include this sales tax value. - **`claimInformation.serviceLines[].serviceDate`** (`string`): The date the service was rendered (for services performed on a single day), formatted as `YYYYMMDD`. **Do not** supply a date here if you are including the `serviceLineDateInformation.treatmentStartDate` property in the service line. - **`claimInformation.serviceLines[].serviceFacilityLocation`** (`object`) - **`claimInformation.serviceLines[].serviceFacilityLocation.address`** (`object`) - **`claimInformation.serviceLines[].serviceFacilityLocation.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].serviceFacilityLocation.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].serviceFacilityLocation.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].serviceFacilityLocation.locationNumber`** (`string`): The provider's location number. - **`claimInformation.serviceLines[].serviceFacilityLocation.npi`** (`string`): The organization National Provider Identifier (NPI) assigned to the service facility. Only include this property when the service facility is not a component or subpart of the billing provider. Don't include when the service facility is the patient's home. - **`claimInformation.serviceLines[].serviceFacilityLocation.organizationName`** (`string`) (required): The provider's business name. - **`claimInformation.serviceLines[].serviceFacilityLocation.providerUpinNumber`** (`string`): Deprecated; do not use. - **`claimInformation.serviceLines[].serviceLineDateInformation`** (`object`): Identify specific dates related to the service rendered. - **`claimInformation.serviceLines[].serviceLineDateInformation.applianceDate`** (`string`): The date the appliance was placed, formatted as `YYYYMMDD`. Required when the orthodontic appliance placement date is different than the date you supplied in `claimInformation.claimDateInformation.appliancePlacementDate`. - **`claimInformation.serviceLines[].serviceLineDateInformation.estimatedPriorPlacementDate`** (`string`): The estimated date when the previous appliance was placed, formatted as `YYYYMMDD`. Either this property or `priorPlacementDate` is required when the `claimInformation.serviceLines[].dentalService.prosthesisCrownOrInlayCode` for this service line is set to `R` for Replacement. - **`claimInformation.serviceLines[].serviceLineDateInformation.priorPlacementDate`** (`string`): The exact date when the previous appliance was placed, formatted as `YYYYMMDD`. Either this property or `estimatedPriorPlacementDate` is required when the `claimInformation.serviceLines[].dentalService.prosthesisCrownOrInlayCode` for this service line is set to `R` for Replacement. - **`claimInformation.serviceLines[].serviceLineDateInformation.replacementDate`** (`string`): The date the orthodontic appliance was replaced, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].serviceLineDateInformation.treatmentCompletionDate`** (`string`): The date the treatment was completed, formatted as `YYYYMMDD`. If you include this property, **do not** include the `serviceDate` property in this service line. - **`claimInformation.serviceLines[].serviceLineDateInformation.treatmentStartDate`** (`string`): The date the treatment began, formatted as `YYYYMMDD`. This may apply to the following scenarios: initial impression or preparation for a crown or denture, reporting initial endontic treatment, or reporting the implant fixture placement. If you include this property, **do not** include the `serviceDate` property in this service line. - **`claimInformation.serviceLines[].serviceLineReferenceInformation`** (`object`): Additional identifiers for the service line. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.adjustedRepricedLineItemReferenceNumber`** (`string`): Required when a repricing (pricing) organization needs to have an identifying number on the service line. Only completed by repricing organizations. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.predeterminationOfBenefits`** (`array of PredeterminationOfBenefits objects`): The Predetermination of Benefits Identification Numbers relevant to this service line. Required for services that have been previously predetermined and are now being submitted for payment. You can include up to five objects in this array. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.predeterminationOfBenefits[].otherPayerPrimaryIdentifier`** (`string`): The primary identifier of the payer who assigned the `predeterminationOfBenefits` number. This must match the identifier in the `claimInformation.otherSubscriberInformation.otherPayerName.otherPayerIdentifier` property. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.predeterminationOfBenefits[].predeterminationOfBenefits`** (`string`) (required): The Predetermination of Benefits Identification Number. If you're including the identifier provided by the payer identified in `claimInformation.otherSubscriberInformation.otherPayerName`, you must also include the `otherPayerPrimaryIdentifier` property. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization`** (`array of PriorAuthorization objects`): Prior authorization (preauthorization) numbers that apply to this service line. - Put each unique number in a separate array element. - You can use the same number on multiple service lines. **Important**: Only include prior authorization numbers that differ from the claim-level authorization in `claimInformation.claimSupplementalInformation.priorAuthorizationNumber`. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization[].otherPayerPrimaryIdentifier`** (`string`): This must match the value in `claimInformation.otherSubscriberInformation.otherPayerName.otherPayerIdentifier`. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.priorAuthorization[].priorAuthorizationOrReferralNumber`** (`string`) (required): A prior authorization (preauthorization) number that applies to this service line. **Important**: Only use this property for service-level prior authorization numbers that differ from the claim-level authorization (`claimInformation.claimSupplementalInformation.priorAuthorizationNumber`). - **`claimInformation.serviceLines[].serviceLineReferenceInformation.referralNumber`** (`array of strings`): Required when this service line involved a referral number that is different than the number reported at the claim level. You can include up to five objects in this array. - **`claimInformation.serviceLines[].serviceLineReferenceInformation.repricedLineItemReferenceNumber`** (`string`): Required when a repricing (pricing) organization needs to have an identifying number on the service line. Only completed by repricing organizations. - **`claimInformation.serviceLines[].supervisingProvider`** (`object`) - **`claimInformation.serviceLines[].supervisingProvider.commercialNumber`** (`string`): The provider's commercial number. - **`claimInformation.serviceLines[].supervisingProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].supervisingProvider.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].supervisingProvider.locationNumber`** (`string`): The provider's location number. - **`claimInformation.serviceLines[].supervisingProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].supervisingProvider.npi`** (`string`): The individual National Provider Identifier (NPI) assigned to the provider. - **`claimInformation.serviceLines[].supervisingProvider.organizationName`** (`string`): The provider's business name. - **`claimInformation.serviceLines[].supervisingProvider.providerUpinNumber`** (`string`): Deprecated; do not use. - **`claimInformation.serviceLines[].supervisingProvider.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`claimInformation.serviceLines[].supervisingProvider.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].supervisingProvider.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`claimInformation.serviceLines[].teethInformation`** (`array of ToothInformation objects`): Identify a tooth by its number and the surfaces involved in the service. - **`claimInformation.serviceLines[].teethInformation[].toothCode`** (`string`) (required): An [American Dental Association CDT Code](https://www.ada.org/publications/cdt) for the procedures performed on a specific tooth. You can only use this object to report individual teeth. You can't use it to report areas of the oral cavity, such as quadrants or sextants. Areas of the oral cavity are reported in the `claimInformation.serviceLines[].dentalService.oralCavityDesignation` property. You can only include multiples of this object when `claimInformation.serviceLines[].dentalService.procedureCount` is equal to 1. When applicable, you can include this object up to 32 times within a single service line. - **`claimInformation.serviceLines[].teethInformation[].toothSurfaceCodes`** (`array of strings`): Code identifying the area of the tooth that was treated. Can be set to `B` - Buccal, `D`- Distal, `F`- Facial, `I`- Incisal, `L` - Lingual, `M` - Mesial, or `O` Occlusal. - **`claimInformation.signatureIndicator`** (`string`) (required): Indicates whether the provider's signature is on file. Can be set to `N` - No or `Y` - Yes. - Allowed values: `N`, `Y` - **`claimInformation.specialProgramCode`** (`string`): Code indicating the Special Program under which the services rendered to the patient were performed. Used for Medicaid claims only. Can be set to `01` - Early & Periodic Screening, Diagnosis and Treatment (EPSDT) or Child Assessment Program (CHAP), `02` - Physically Handicapped Children's Program, `03` - Special Federal Funding, or `05` - Disability. Codes `02`, `03`, and `05` are used for Medicaid claims only. - Allowed values: `01`, `02`, `03`, `05` - **`claimInformation.toothStatus`** (`array of ToothStatus objects`): The status of the teeth involved in the service. Required when the submitter is reporting a missing tooth or a tooth to be extracted in the future. You can include up to 35 objects in this array. - **`claimInformation.toothStatus[].toothNumber`** (`string`) (required): The tooth number according to the American Dental Association tooth designation system. - **`claimInformation.toothStatus[].toothStatusCode`** (`string`) (required): Can be set to `E` - To Be Extracted, `M` - Missing. - Allowed values: `E`, `M` - **`dependent`** (`object`): Dependent who received the medical care associated with the claim. - If the dependent has their own member ID for the health plan, you should include the dependent's information in the `subscriber` object instead. To check whether a dependent has a member ID, submit an [Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) to the payer. The payer returns the dependent's member ID in the `dependents.memberId` property in the response, if present. - You must include `address` in this object when the patient is a dependent. - **`dependent.address`** (`object`): The patient's address. Every claim must include this information in either the `subscriber` (when the patient is the subscriber) or `dependent` (when the patient is a dependent) object. You must include at least the `address1` and `city` properties in this object. The `state` and `postalCode` properties are also required for all United States and Canadian addresses. - The address should be the patient's correct address at the time of service. Use of outdated values could cause the payer to reject, deny, or delay the claim due to suspected fraud. - If you don't know the patient's address, first submit a [Real-Time Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) for the patient and then copy the address from either the `subscriber` or `dependent` object in the response. - If the patient doesn't have a current address, you can populate the `address1` property with `UNKNOWN` and populate the city, state, and zip code with appropriate values based on your discretion. However, we still recommend running an eligibility check when possible, so you can use the address the payer has on file. Some payers may have explicit rules for how to handle this situation - check the payer's specific requirements before using this approach. - **`dependent.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`dependent.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`dependent.address.city`** (`string`) (required): The city name. - **`dependent.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`dependent.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`dependent.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`dependent.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`dependent.dateOfBirth`** (`string`) (required): The patient's date of birth, formatted as `YYYYMMDD`. - **`dependent.firstName`** (`string`) (required): The patient's first name. - **`dependent.gender`** (`string`) (required): Code indiciating the patient's gender. Can be set to `F` - Female, `M` - Male, or `U` - Unknown. You should set this property to `U` when the patient declines to answer or does not identify as male or female. Note that some payers may reject the claim if the patient's gender doesn't match the gender they have recorded in their member records. - Allowed values: `M`, `F`, `U` - **`dependent.lastName`** (`string`) (required): The patient's last name. **Don't** include the patient's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`dependent.memberId`** (`string`): The patient's identification number. Only used in Property and Casualty claims. - **`dependent.middleName`** (`string`): The patient's middle name or initial. - **`dependent.relationshipToSubscriberCode`** (`string`) (required): Identifies the relationship of the patient to the subscriber. Can be set to `01` - Spouse, `19` - Child, `20` - Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8` - **`dependent.ssn`** (`string`): The patient's Social Security Number. Only used for Property and Casualty claims. - **`dependent.suffix`** (`string`): The patient's name suffix, such as Jr. or III. Only include the patient's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`payToAddress`** (`object`) - **`payToAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payToAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payToAddress.city`** (`string`) (required): The city name. - **`payToAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`payToAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`payToAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`payToAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`payToPlan`** (`object`): Use for subrogation payment requests. If you include this information, you must also set the `claimInformation.otherSubscriberInformation.payerPaidAmount` to the amount the payer (for example, Medicaid) actually paid. - **`payToPlan.address`** (`object`) (required) - **`payToPlan.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payToPlan.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payToPlan.address.city`** (`string`) (required): The city name. - **`payToPlan.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`payToPlan.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`payToPlan.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`payToPlan.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`payToPlan.organizationName`** (`string`) (required): The last name of the individual, or the business name of the pay-to-plan organization. - **`payToPlan.primaryIdentifier`** (`string`) (required): The identifier you specified in `primaryIdentifierTypeCode`. - **`payToPlan.primaryIdentifierTypeCode`** (`string`) (required): Code identifying the type of identifier. Can be set to `PI` - Payor Identification or `XV` - Centers for Medicare/Medicaid Services PlanID. `XV` is deprecated. - Allowed values: `PI`, `XV` - **`payToPlan.secondaryIdentifier`** (`string`): The secondary identifier you specified in `secondaryIdentifierTypeCode`. - **`payToPlan.secondaryIdentifierTypeCode`** (`string`): Code identifying the type of secondary identifier. Can be set to `2U` - Payer Identification Number, `FY` - Claim Office Number, or `NF` - National Association of Insurance Commissioners. You should only set this to `2U` when you set the `primaryIdentifierTypeCode` to `XV`. - Allowed values: `2U`, `FY`, `NF` - **`payToPlan.taxIdentificationNumber`** (`string`) (required): The Employer Identification Number (EIN). This must be a string of exactly nine numbers with no separators. - **`payerAddress`** (`object`) - **`payerAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payerAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payerAddress.city`** (`string`) (required): The city name. - **`payerAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`payerAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`payerAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`payerAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`receiver`** (`object`) (required): The entity responsible for the payment of the claim, such as an insurance company or government agency. - **`receiver.organizationName`** (`string`) (required): The business name of the payer receiving the claim, such as Aetna or Cigna. - **`receiver.receiverId`** (`string`): Set to `PAPER` when you want Stedi to print this claim and mail it to the payer. Omit otherwise. Visit [Submit paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims) for details. - **`referring`** (`object`): Information about the provider who directed the patient to the rendering provider for care. For example, a primary care physician may refer patients to a specialist. Use when the referring provider applies to the entire claim, not just a specific service line. This should be an individual, not an organization, and you should supply at least the provider's `lastName` and an identifier, which is typically the `npi`. - **`referring.address`** (`object`) - **`referring.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`referring.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`referring.address.city`** (`string`) (required): The city name. - **`referring.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`referring.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`referring.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`referring.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`referring.commercialNumber`** (`string`): The provider's commercial number. - **`referring.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`referring.contactInformation.email`** (`string`): The email address. - **`referring.contactInformation.faxNumber`** (`string`): The fax number. - **`referring.contactInformation.name`** (`string`): The full name of the person or office. - **`referring.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`referring.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`referring.firstName`** (`string`): The provider's first name. - **`referring.lastName`** (`string`): The provider's last name. - **`referring.middleName`** (`string`): The provider's middle name or initial. - **`referring.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`referring.organizationName`** (`string`): The provider's business name. - **`referring.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`referring.providerUpinNumber`** (`string`): Deprecated; do not use. - **`referring.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`referring.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`referring.taxonomyCode`** (`string`) - **`rendering`** (`object`): Information about the person or company (laboratory or other facility) who rendered the care. Use this object for all types of rendering providers including laboratories. When a substitute provider (locum tenens) was used, enter that provider's information here. - Use when the provider applies to the entire claim or to at least one service line. For example, if a claim had two service lines with two different rendering providers, you would include the provider for the first service line here and leave the `claimInformation.serviceLines[].renderingProvider` object for that service line blank. Then, you would specify the second provider in the appropriate service line's `claimInformation.serviceLines[].renderingProvider` object. - You can omit this object when the rendering provider is the same as the billing provider. In that case, you would include the provider's information in the `billing` object and leave this object blank. - **`rendering.address`** (`object`) - **`rendering.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`rendering.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`rendering.address.city`** (`string`) (required): The city name. - **`rendering.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`rendering.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`rendering.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`rendering.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`rendering.commercialNumber`** (`string`): The provider's commercial number. - **`rendering.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`rendering.contactInformation.email`** (`string`): The email address. - **`rendering.contactInformation.faxNumber`** (`string`): The fax number. - **`rendering.contactInformation.name`** (`string`): The full name of the person or office. - **`rendering.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`rendering.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`rendering.firstName`** (`string`): The provider's first name, if the provider is an individual. - **`rendering.lastName`** (`string`): The provider's last name, if the provider is an individual. You must include either the `lastName` or `organizationName` property in this object. - **`rendering.locationNumber`** (`string`): The provider's location number. - **`rendering.middleName`** (`string`): The provider's middle name or initial, if the provider is an individual. - **`rendering.npi`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`rendering.organizationName`** (`string`): The provider's business name, if the provider is an organization. You must include either the `lastName` or `organizationName` property in this object. - **`rendering.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`rendering.providerUpinNumber`** (`string`): Deprecated; do not use. - **`rendering.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`rendering.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`rendering.taxonomyCode`** (`string`): Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the provider's type and/or area of specialty. - **`submitter`** (`object`) (required): The entity submitting the healthcare claim. This can be either an individual or an organization, such as a doctor, hospital, or insurance company. You must submit at least `organizationName` or `lastName` properties and the `contactInformation` object. If you don't supply the `submitterIdentification` property, Stedi uses the value from `billing.npi` in the request. - **`submitter.contactInformation`** (`object`) (required): You must include at least one communication method (phone, fax, or email) in this object. - **`submitter.contactInformation.email`** (`string`): The email address. - **`submitter.contactInformation.faxNumber`** (`string`): The fax number. - **`submitter.contactInformation.name`** (`string`): The full name of the person or office. - **`submitter.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`submitter.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`submitter.firstName`** (`string`): The first name of the individual submitting the claim. - **`submitter.lastName`** (`string`): The last name of the individual submitting the claim. - **`submitter.middleName`** (`string`): The middle name or initial of the individual submitting the claim. - **`submitter.organizationName`** (`string`): The business name of the organization submitting the claim. - **`submitter.submitterIdentification`** (`string`): The submitter's Electronic Transmitter Identification Number (ETIN), as assigned by the payer. For some payers, this may be the same as the submitter's NPI or TIN, but it can also be another unique identifier. Payers can refer to this identifier as the Provider Number, Submitter ID, Submitter Identifier, Submitter Primary Number, Sender Code, Certified Contracted Provider ID, and other names. If you don't provide this property, Stedi uses the billing provider's NPI from `billing.npi` property. - **`subscriber`** (`object`) (required): The person or entity who is the primary policyholder for the health plan _or_ a dependent with their own member ID. - When a dependent has a unique, payer-assigned member ID, treat them as the `subscriber` for the claim submission - include their information here and omit the `dependent` object from the request. Note that the subscriber can be an individual or a business entity. Stedi treats the subscriber as an individual when the request doesn't contain a value for the `subscriber.organizationName` property. - You must set the `dateOfBirth` and `gender` properties when the subscriber is the patient. Stedi determines that the subscriber is the patient when the `dependent` object is not included in the request. - If either `dateOfBirth` or `gender` is set, you must include both properties. You can either include both properties or neither within a single request. - You must include `address` in this object when the patient is the subscriber. If the patient is a dependent, include address information in the `dependent` object instead. - **`subscriber.address`** (`object`): The patient's address. Every claim must include this information in either the `subscriber` (when the patient is the subscriber) or `dependent` (when the patient is a dependent) object. You must include at least the `address1` and `city` properties in this object. The `state` and `postalCode` properties are also required for all United States and Canadian addresses. - The address should be the patient's correct address at the time of service. Use of outdated values could cause the payer to reject, deny, or delay the claim due to suspected fraud. - If you don't know the patient's address, first submit a [Real-Time Eligibility Check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) for the patient and then copy the address from either the `subscriber` or `dependent` object in the response. - If the patient doesn't have a current address, you can populate the `address1` property with `UNKNOWN` and populate the city, state, and zip code with appropriate values based on your discretion. However, we still recommend running an eligibility check when possible, so you can use the address the payer has on file. Some payers may have explicit rules for how to handle this situation - check the payer's specific requirements before using this approach. - **`subscriber.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`subscriber.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`subscriber.address.city`** (`string`) (required): The city name. - **`subscriber.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`subscriber.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`subscriber.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`subscriber.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth, formatted as `YYYYMMDD`. This property is **required** if the subscriber is an individual. - **`subscriber.firstName`** (`string`): The subscriber's first name. This property is **recommended** when the subscriber is an individual. Omit when the subscriber is an organization. Some payers reject requests without the `firstName` property. - **`subscriber.gender`** (`string`): Identifies the subscriber's gender. Can be set to `F` - Female, `M` - Male, or `U` - Unknown. This property is **required** if the subscriber is an individual. You should set this property to `U` when the patient declines to answer or does not identify as male or female. Note that some payers may reject the claim if the patient's gender doesn't match the gender they have recorded in their member records. - Allowed values: `M`, `F`, `U` - **`subscriber.groupNumber`** (`string`): The subscriber's health plan group number. - Provide this property OR the `policyNumber`, not both. - Provide this property OR the `subscriberGroupName`, not both. If this property is set, Stedi ignores the `subscriberGroupName` property. - **`subscriber.insuranceTypeCode`** (`string`): Identifies the type of insurance policy within a specific insurance program. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#insurance-type-codes) for a complete list. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47` - **`subscriber.lastName`** (`string`): The subscriber's last name. This property is **required** if the subscriber is an individual. Omit when the subscriber is an organization. **Don't** include the subscriber's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. This property is **required** if the subscriber is an individual. - **`subscriber.middleName`** (`string`): The subscriber's middle name or initial. - **`subscriber.organizationName`** (`string`): The business name of the entity submitting the claim. This is **required** when the subscriber is an organization. When the subscriber is an organization, you should identify the patient in the `dependent` object. - **`subscriber.paymentResponsibilityLevelCode`** (`string`): Code identifying the payer's level of responsibility for paying this claim. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#payment-responsibility-sequence-number-codes) for a complete list of possible codes. - Stedi sets this property to `P` - Primary by default. You only need to include it when you need to submit codes other than `P`. This can happen when the patient has multiple insurance policies. For example, if a patient is covered by both Medicare and an employer-sponsored commercial plan, you could bill the commercial plan first as `P` and then bill the Medicare payer second as `S`. - Either this property or `otherSubscriberInformation.paymentResponsibilityLevelCode` must be set to `P` to indicate the primary insurance payer. Stedi rejects claims - including secondary and tertiary claims - that don't include information for the primary payer. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `P`, `S`, `T`, `U` - **`subscriber.policyNumber`** (`string`): The subscriber's health plan policy number. You should provide either this property OR the `groupNumber`, not both. - **`subscriber.ssn`** (`string`): The subscriber's Social Security Number. - **`subscriber.subscriberGroupName`** (`string`): The name of the subscriber's health plan. For example, Cigna or Blue Cross Blue Shield. Provide either this property OR the `groupNumber`, not both. If `groupNumber` is set, Stedi ignores this value and uses the value in `groupNumber`. - **`subscriber.suffix`** (`string`): The suffix of the subscriber's name, such as Jr. or Sr. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`supervising`** (`object`): The entity responsible for overseeing the rendering provider and the care reported in this claim. Applies when the rendering provider is supervised by a physician. Use when the provider applies to the entire claim, not just a specific service line. This should be an individual, not an organization, and you should supply at least the provider's `lastName` and an identifier, which is typically the `npi`. - **`supervising.address`** (`object`) - **`supervising.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`supervising.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`supervising.address.city`** (`string`) (required): The city name. - **`supervising.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`supervising.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`supervising.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`supervising.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`supervising.commercialNumber`** (`string`): The commercial number of the supervising provider. - **`supervising.contactInformation`** (`object`): You must include at least one communication method (phone, fax, or email) in this object. - **`supervising.contactInformation.email`** (`string`): The email address. - **`supervising.contactInformation.faxNumber`** (`string`): The fax number. - **`supervising.contactInformation.name`** (`string`): The full name of the person or office. - **`supervising.contactInformation.phoneExtension`** (`string`): The phone extension, if applicable. - **`supervising.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`supervising.employerId`** (`string`) - **`supervising.firstName`** (`string`): The first name of the supervising provider. - **`supervising.lastName`** (`string`): The last name of the supervising provider. - **`supervising.locationNumber`** (`string`): The location number of the supervising provider. - **`supervising.middleName`** (`string`): The middle name or initial of the supervising provider. - **`supervising.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the supervising provider. - **`supervising.organizationName`** (`string`): The supervising provider's business name, when the provider is not an individual. - **`supervising.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`supervising.providerUpinNumber`** (`string`): Deprecated; do not use. - **`supervising.ssn`** (`string`): Social Security Number without spaces or punctuation (9 digits) - **`supervising.stateLicenseNumber`** (`string`): The state license number of the supervising provider. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`supervising.suffix`** (`string`): The suffix of the supervising provider's name, such as Jr. or III. - **`supervising.taxonomyCode`** (`string`) - **`tradingPartnerName`** (`string`): This is the payer's business name, like Cigna or Aetna. - **`tradingPartnerSecondaryIdentifiers`** (`object`): Secondary identifiers for the payer. You can include up to three properties in this object. - **`tradingPartnerSecondaryIdentifiers.claimOfficeNumber`** (`string`): Claim Office Number. - **`tradingPartnerSecondaryIdentifiers.employerIdentificationNumber`** (`string`): Employer Identification Number. This must be a string of exactly nine numbers with no separators. - **`tradingPartnerSecondaryIdentifiers.naic`** (`string`): National Association of Insurance Commissioners (NAIC) Code. - **`tradingPartnerSecondaryIdentifiers.payerIdentificationNumber`** (`string`): Payer Identification Number. This shape is deprecated since 1/9/25. - **`tradingPartnerServiceId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`usageIndicator`** (`string`): Whether you want to send a test or production claim. This property also allows you to filter claims in the Stedi portal by production or test data. By default, this property is set to `P` for production data. Use `T` to designate a claim as test data. **Example:** ```json { "billing": { "address": { "address1": "ABA Inc 123 Some St", "city": "Denver", "postalCode": "802383000", "state": "CO" }, "contactInformation": { "name": "ABA Inc", "phoneNumber": "3134893157" }, "employerId": "123456789", "npi": "1999999992", "organizationName": "ABA Inc", "providerType": "BillingProvider", "taxonomyCode": "106S00000X" }, "claimInformation": { "benefitsAssignmentCertificationIndicator": "Y", "claimChargeAmount": "832.00", "claimFilingCode": "FI", "claimFrequencyCode": "1", "claimSupplementalInformation": { "priorAuthorizationNumber": "20231010012345678" }, "healthCareCodeInformation": [ { "diagnosisCode": "K08101", "diagnosisTypeCode": "ABK" } ], "patientControlNumber": "", "placeOfServiceCode": "12", "planParticipationCode": "A", "releaseInformationCode": "Y", "serviceFacilityLocation": { "address": { "address1": "ABA Inc 123 Some St", "city": "Denver", "postalCode": "802383100", "state": "CO" }, "npi": "1999999992", "organizationName": "ABA Inc", "phoneNumber": "3134893157" }, "serviceLines": [ { "dentalService": { "compositeDiagnosisCodePointers": { "diagnosisCodePointers": [ "1" ] }, "lineItemChargeAmount": "832.00", "oralCavityDesignation": [ "1", "2" ], "placeOfServiceCode": "12", "procedureCode": "D7140", "procedureCount": 2, "prosthesisCrownOrInlayCode": "I" }, "providerControlNumber": "a0UDo000000dd2dMAA", "renderingProvider": { "firstName": "Jane", "lastName": "Doe", "npi": "1999999992", "taxonomyCode": "122300000X" }, "serviceDate": "20230428", "teethInformation": [ { "toothCode": "3", "toothSurfaceCodes": [ "M", "O" ] } ] } ], "signatureIndicator": "Y", "toothStatus": [ { "toothNumber": "3", "toothStatusCode": "E" } ] }, "payerAddress": { "address1": "PO Box 7000", "city": "Camden", "postalCode": "29000", "state": "SC" }, "receiver": { "organizationName": "United HealthCare Dental" }, "rendering": { "firstName": "Jane", "lastName": "Doe", "npi": "1999999992", "providerType": "RenderingProvider", "taxonomyCode": "106S00000X" }, "submitter": { "contactInformation": { "name": "BILLING DEPARTMENT", "phoneNumber": "3134893157" }, "organizationName": "ABA Inc", "submitterIdentification": "~GS*HN*STEDITEST*574183004559*20260213*195613*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC96JC6ZRRJ3PB88T7JR7S8*20260213*195613*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC96JC6ZRRJ3PB88T7JR7S8~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*ABA Inc*****46*123456789~TRN*2*01KHC96GBNYA14YRBRJGFR13P7~STC*A0>17>AY*20260213*WQ*832.0~QTY*90*1~AMT*YU*832.0~HL*3*2*19*1~NM1*85*2*ABA Inc*****XX*1999999992~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*832.0~HL*4*3*PT*0~NM1*QC*1*Doe*John****MI*123412345~TRN*2*12345~STC*A1>20*20260213*WQ*832.0~DTP*472*RD8*20230428-20230428~SE*25*0001~GE*1*1~IEA*1*343800641~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 422 RequestChangedException 422 response **Schema:** `RequestChangedExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of error. - **`message`** (`string`) (required): Human readable error message explaining why the request was rejected. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Real-Time Eligibility Check (270/271) JSON - Legacy Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility-legacy This is the legacy JSON endpoint. We won't deprecate it, and you can continue using it in production. We recommend using [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) for new integrations - its updated request and response shapes are more intuitive for both developers and AI agents. Of course, you're free to upgrade at any time. Real-time eligibility checks are ideal for in-person patient visits, telehealth appointments, and other scenarios where you need immediate information about a patient's coverage. 1. Call this endpoint with a JSON payload. 2. Stedi translates your request to the X12 270 EDI format and sends it to the payer. 3. The endpoint returns a synchronous response from the payer in both JSON and raw X12 EDI format. The response contains the patient's eligibility and benefits information. Note that our documentation lists all enums officially allowed in the eligibility response. Some payers return non-compliant values, which Stedi passes through as is. ## API Specification Submit a real-time 270/271 eligibility check in JSON format **Endpoint:** `POST /change/medicalnetwork/eligibility/v3` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`X-Forwarded-For`** (header): - Type: `string` ### Request Body **Schema:** `EligibilityCheckRequestContent` **Properties:** - **`controlNumber`** (`string`): Stedi generates a control number for each eligibility check, so you don’t need to include this property in your request. - **`dependents`** (`array of RequestDependent objects`): A dependent for which you want to retrieve benefits information. - You can only submit one dependent per eligibility check. - Only include the patient's information here when they are listed as a dependent on the subscriber's insurance plan AND the payer cannot uniquely identify them through information outside the subscriber's policy. For example, if the dependent has their own member ID number, you should identify them in the `subscriber` object instead. This includes member IDs that differ only by a suffix, such as `01`, because the patient can still be uniquely identified. - Most Medicaid plans don't support dependents, with a [few exceptions](https://www.stedi.com/docs/healthcare/send-eligibility-checks#medicaid-dependents). Sending this array to payers that don't support dependents will either cause an error, or the payer may ignore the information and return results for the subscriber instead. - Each payer has different requirements, so you should supply the fields necessary for each payer to identify the dependent in their system. However, we **strongly recommend** including the dependent's date of birth in the request when available because many payers return errors without it. - Enter the patient's name exactly as written on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Visit [patient names](https://www.stedi.com/docs/healthcare/send-eligibility-checks#patient-names) for all best practices to avoid unnecessary failures. - **`dependents[].additionalIdentification`** (`object`): Use this object when you need to provide an additional identification number for the dependent. This is rarely required for standard eligibility checks. - **`dependents[].additionalIdentification.agencyClaimNumber`** (`string`): The Property and Casualty Claim Number associated with the patient. You should only submit this value when when you are submitting an eligibility request to a property and casualty payer. - **`dependents[].additionalIdentification.contractNumber`** (`string`): The contract number for an existing contract between the payer and the provider requesting the eligibility check. - **`dependents[].additionalIdentification.healthInsuranceClaimNumber`** (`string`): This property is never used in practice. - **`dependents[].additionalIdentification.identificationCardSerialNumber`** (`string`): The identification card serial number. You can include this when the ID card has a number in addition to the member ID number. The Identification Card Serial Number uniquely identifies the card when multiple cards have been or will be issued to a member, such as a replacement card. - **`dependents[].additionalIdentification.insurancePolicyNumber`** (`string`): The insurance policy number. - **`dependents[].additionalIdentification.medicalRecordIdentificationNumber`** (`string`): The medical record identification number. - **`dependents[].additionalIdentification.memberIdentificationNumber`** (`string`): Not intended for most use cases. Only set this when the property and casualty patient identifier is a member ID that would be used in an 837 claim submission. If the patient has their own member ID for the health plan, you should identify them in the `subscriber` object. If the patient doesn't have their own member ID, don't set this property. - **`dependents[].additionalIdentification.patientAccountNumber`** (`string`): The patient account number. - **`dependents[].additionalIdentification.planNetworkIdentificationNumber`** (`string`): The plan network identification number. - **`dependents[].additionalIdentification.planNumber`** (`string`): The insurance plan number. - **`dependents[].additionalIdentification.policyNumber`** (`string`): The insurance group or policy number. - **`dependents[].address`** (`object`): Address information for the dependent. When providing address information, we recommend including `state` for member identification in addition to the required `address1` and `city` properties. - **`dependents[].address.address1`** (`string`) (required): The first line of the address. - **`dependents[].address.address2`** (`string`): The second line of the address. - **`dependents[].address.city`** (`string`) (required): The city. - **`dependents[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependents[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependents[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependents[].address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`dependents[].beginningCardIssueDate`** (`string`): The date the insurance card was issued. Use when you need to specify a date range. Provide the end of the range in the `endCardIssueDate` property. - **`dependents[].beginningPlanIssueDate`** (`string`): The date the insurance plan begins. Use when you need to specify a date range. Provide the end of the range in the `endPlanIssueDate` property. - **`dependents[].birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Use to indicate the birth order when there are multiple births associated with the provided birth date. - **`dependents[].dateOfBirth`** (`string`): The dependent's date of birth (DOB). We **strongly recommend** including the DOB in your request. Many payers need this information to identify the patient in their system and immediately return an error when it's not provided. - **`dependents[].eligibilityCategory`** (`string`): The eligibility category for the dependent. - **`dependents[].endCardIssueDate`** (`string`): The date the insurance card expires. Use when you need to specify a date range. Provide the start of the range in the `beginningCardIssueDate` property. - **`dependents[].endPlanIssueDate`** (`string`): The date the insurance plan ends. Use when you need to specify a date range. Provide the start of the range in the `beginningPlanIssueDate` property. - **`dependents[].firstName`** (`string`): The dependent's first name. - **`dependents[].gender`** (`string`) - Allowed values: `M`, `F` - **`dependents[].groupNumber`** (`string`): The group number for the dependent's insurance plan. - **`dependents[].healthCareCodeInformation`** (`array of HealthCareInformation objects`): Information about the dependent's health care diagnosis. You can include up to eight entries in this array. The first array entry must have `diagnosisTypeCode` set to `ABK`. All subsequent entries must have `diagnosisTypeCode` set to `ABF`. - **`dependents[].healthCareCodeInformation[].diagnosisCode`** (`string`) (required): The diagnosis code. Omit the decimal points in diagnosis codes - the decimal point is assumed. - **`dependents[].healthCareCodeInformation[].diagnosisTypeCode`** (`string`) (required): The type of diagnosis code you are providing. You can set to `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis, `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis, `BF`- International Classification of Diseases Clinical Modification (ICD-9-CM) Diagnosis, or `ABF`- International Classification of Diseases Clinical Modification (ICD-10-CM) Diagnosis. Note that ICD-9 codes are **deprecated** and should no longer be used in eligibility checks. - Allowed values: `BK`, `ABK`, `BF`, `ABF` - **`dependents[].idCard`** (`string`): The dependent's insurance card number. - **`dependents[].idCardIssueDate`** (`string`): The date the insurance card was issued. Use to specify a single date. - **`dependents[].individualRelationshipCode`** (`string`): The dependent's relationship to the subscriber. You can set this to `01` - Spouse, `19` - Child, `34` - Other Adult. - Allowed values: `01`, `19`, `34` - **`dependents[].issueNumber`** (`string`): The issue number for the dependent's insurance policy. - **`dependents[].lastName`** (`string`): The dependent's last name. **Don't** include the dependent's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`dependents[].memberId`** (`string`): This shape is deprecated: This property is no longer used. - **`dependents[].middleName`** (`string`): The dependent's middle name or middle initial. - **`dependents[].planIssueDate`** (`string`): The date the insurance plan begins. Use to specify a single date. - **`dependents[].providerCode`** (`string`): Use this for providers that are not requesting the eligibility check - the requestor is specified in the `provider` object. For example, if you are a hospital making an eligibility request, this is where you would specify information about a referring provider's role. You can use one of the following: `AD` - Admitting, `AT` - Attending, `BI` - Billing, `CO` - Consulting, `CV` - Covering, `H` - Hospital, `HH` - Home Health Care, `LA` - Laboratory, `OT` - Other Physician, `P1` - Pharmacist, `P2` - Pharmacy, `PC` - Primary Care Physician, `PE`- Performing, `R`- Rural Health Clinic, `RF` - Referring, `SB` - Submitting, `SK` - Skilled Nursing Facility, `SU` - Supervising - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SK`, `SU` - **`dependents[].providerIdentifier`** (`string`): The provider identifier you specified in the `referenceIdentificationQualifier` property. For example, the provider's National Provider ID or Federal Taxpayer Identification number. If you set the `referenceIdentificationQualifier` to `PXC`, then this property should contain the provider's taxonomy code. - **`dependents[].referenceIdentificationQualifier`** (`string`): The type of `providerIdentifier` you are using. Use for providers that are not requesting the eligibility check, such as the referring provider. - Set to `HPI` when the National Provider ID is mandated for use. - Set to `PXC` if you're identifying a type of specialty associated with services provided to the dependent. Otherwise, you can set to the following: `9K` - Servicer, `D3` - National Council for Prescription Drug Programs Pharmacy Number, `EI` - Employer's Identification Number, `HPI` - Centers for Medicare and Medicaid Services National Provider Identifier, `PXC` - Health Care Provider Taxonomy Code, `SY` - Social Security Number, `TJ` - Federal Taxpayer's Identification Number - Allowed values: `9K`, `D3`, `EI`, `HPI`, `PXC`, `SY`, `TJ` - **`dependents[].ssn`** (`string`): The dependent's social security number. Don't use this for Federally-administered programs, such as Medicare. - **`dependents[].suffix`** (`string`): The dependent's name suffix, such as Sr. or III. Only include the dependent's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`encounter`** (`object`): Details about the eligibility or benefit information you are requesting for the patient. - If you don't specify either `serviceTypeCodes` or a `procedureCode` and `productOrServiceIDQualifier`, Stedi defaults to using `30` (Plan coverage and general benefits) as the only `serviceTypeCodes` value. - You can specify either a single `dateOfService` or a `beginningDateOfService` and `endDateOfService`. The payer defaults to using the current date in their timezone if you don't include one. - When checking eligibility for today, omit the `dateOfService` property to ensure consistent behavior across payers. - We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers such as the Centers for Medicare and Medicaid Services (CMS) do support requests for dates further in the future - especially the next calendar month. Check the payer's documentation to determine their specific behavior. - **`encounter.beginningDateOfService`** (`string`): The beginning date of service. If you include this value, you must also include the `endDateOfService`. - **`encounter.dateOfService`** (`string`): The date of service. You can use this value to specify a single occasion, such as a doctor's visit. If you don't specify a service date (either a single day or a range of dates), the payer defaults to using the current date in their timezone. - **`encounter.diagnosisCodePointer`** (`array of strings`): Diagnosis code pointers in order of importance to the service. These pointers are an index to the ICD-10 codes you included in the `subscriber.healthCareCodeInformation` or `dependents.healthCareCodeInformation` object arrays. The pointer values can be from 1 - 8 (integer numbers). If you are including diagnosis codes, you **must** set at least one pointer here for the primary diagnosis. Then, you can add up to three additional pointers (up to four in total). Don't put ICD-10 codes here. - **`encounter.endDateOfService`** (`string`): The end date of service. If you include this value, you must also include the `beginningDateOfService`. - **`encounter.industryCode`** (`string`): The type of facility where the service was provided. You can set this to one of the [place of service codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets). - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `31`, `32`, `33`, `34`, `41`, `42`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `65`, `71`, `72`, `81`, `99` - **`encounter.medicalProcedures`** (`array of MedicalProcedure objects`): Use only when you need to send multiple procedure codes in a single request. Otherwise, use the `encounter.procedureCode` and `encounter.productOrServiceIDQualifier` properties. - **`encounter.medicalProcedures[].diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`encounter.medicalProcedures[].procedureCode`** (`string`) (required): The procedure code. - **`encounter.medicalProcedures[].procedureModifiers`** (`array of strings`): Procedure modifiers that provide additional information related to the service. - **`encounter.medicalProcedures[].productOrServiceIDQualifier`** (`string`) (required): Code identifying the type/source of the `procedureCode`. You can set this to `AD` - American Dental Association Codes, `CJ` - Current Procedural Terminology (CPT) Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases, 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined. - Allowed values: `AD`, `CJ`, `HC`, `ID`, `IV`, `N4`, `ZZ` - **`encounter.priorAuthorizationOrReferralNumber`** (`string`): The prior authorization or referral number for a particular benefit or procedure. - **`encounter.procedureCode`** (`string`): The procedure code. - **`encounter.procedureModifiers`** (`array of strings`): The procedure modifier that provides additional information related to the performance of the service. - **`encounter.productOrServiceIDQualifier`** (`string`): Code identifying the type/source of the `procedureCode`. You can set this to `AD` - American Dental Association Codes, `CJ` - Current Procedural Terminology (CPT) Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases, 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined. - Allowed values: `AD`, `CJ`, `HC`, `ID`, `IV`, `N4`, `ZZ` - **`encounter.referenceIdentificationQualifier`** (`string`): The type of information you provided in the `priorAuthorizationOrReferralNumber` property. You can set this to `9F` - Referral Number or `G1` - Prior Authorization Number. - Allowed values: `9F`, `G1` - **`encounter.serviceTypeCodes`** (`array of strings`): One or more codes classifying the type of services for which you want to receive benefits information. If you don't specify a service type code or a `procedureCode` and `productOrServiceIDQualifier`, Stedi defaults to using `30` - Health Benefit Plan Coverage. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes#full-stc-list) for a complete list. Not all payers support all service type codes, and not all payers support multiple service type codes in the same request. We recommend including one service type code per request unless you're sure the payer supports multiple. Payers aren't required to respond with exactly the same STC(s) in the response, so you may receive benefits information for STCs you didn't request. However, receiving different STCs can mean that the payer is ignoring the STC you sent, which is why we recommend [testing payers](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes#test-payer-stc-support) to determine their support for specific STCs. - **`externalPatientId`** (`string`): A unique identifier for the patient that Stedi uses to identify and correlate historical eligibility checks for the same individual. We recommend including this value in all requests. - **`informationReceiverName`** (`object`) - **`informationReceiverName.address`** (`object`): Address information for the provider. - Only include when specifically instructed by a payer, such as when the provider has multiple locations and you need to identify the specific location making the request. - You must include at least the `address1` and `city` properties. - **`informationReceiverName.address.address1`** (`string`) (required): The first line of the address. - **`informationReceiverName.address.address2`** (`string`): The second line of the address. - **`informationReceiverName.address.city`** (`string`) (required): The city. - **`informationReceiverName.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`informationReceiverName.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`informationReceiverName.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`informationReceiverName.address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`informationReceiverName.contactNumber`** (`string`) - **`informationReceiverName.contractNumber`** (`string`) - **`informationReceiverName.devicePinNumber`** (`string`) - **`informationReceiverName.facilityIdNumber`** (`string`) - **`informationReceiverName.facilityNetworkIdNumber`** (`string`) - **`informationReceiverName.federalTaxpayerIdentificationNumber`** (`string`) - **`informationReceiverName.informationReceiverAdditionalIdentifierState`** (`string`) - **`informationReceiverName.medicaidProviderNumber`** (`string`): The provider's Medicaid provider number. - **`informationReceiverName.medicareProviderNumber`** (`string`) - **`informationReceiverName.nationalProviderIdentifier`** (`string`) - **`informationReceiverName.priorIdentifierNumber`** (`string`) - **`informationReceiverName.providerPlanNetworkIdNumber`** (`string`) - **`informationReceiverName.socialSecurityNumber`** (`string`) - **`informationReceiverName.stateLicenceNumber`** (`string`) - **`informationReceiverName.submitterIdNumber`** (`string`) - **`portalPassword`** (`string`): The password that the provider uses to log in to the payer's portal. For payers Medicaid California, AltaMed, and Kern Family Health Care, this property is **required** and should be the [provider's PIN](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#portal-credentials). Otherwise, this is not commonly used. - **`portalUsername`** (`string`): The username that the provider uses to log in to the payer's portal. This is not commonly used. - **`provider`** (`object`) (required): Information about the entity requesting the eligibility check. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. - You must provide the `organizationName` (if the entity is an organization), or `firstName` and `lastName` (if the provider is an individual). - You must also provide an identifier - this is typically the provider's [National Provider Identifier](https://www.stedi.com/docs/healthcare/national-provider-identifier) (`npi`). If the provider doesn't have an NPI, you can supply an alternative, such as their `taxId` or `ssn`. - Don't include additional properties, such as `taxId` or `address`, unless they are specifically required or suggested by the payer. - **`provider.address`** (`object`): Address information for the provider. - Only include when specifically instructed by a payer, such as when the provider has multiple locations and you need to identify the specific location making the request. - You must include at least the `address1` and `city` properties. - **`provider.address.address1`** (`string`) (required): The first line of the address. - **`provider.address.address2`** (`string`): The second line of the address. - **`provider.address.city`** (`string`) (required): The city. - **`provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`provider.address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`provider.contactNumber`** (`string`): The provider's contract number. Only include when required by a payer. This shape is deprecated: Use `contractNumber` instead. - **`provider.contractNumber`** (`string`): The provider's contract number. Only include when required by a payer. - **`provider.devicePinNumber`** (`string`): The provider's electronic device pin number. Only include when required by a payer. - **`provider.employersId`** (`string`): Deprecated; The submitter's Employer's Identification Number (EIN). Only use when an employer is checking the eligibility and benefits of their employees. This shape is deprecated: This property is no longer used. - **`provider.facilityIdNumber`** (`string`): The ID number for the provider's facility. Only include when required by a payer. - **`provider.facilityNetworkIdNumber`** (`string`): The provider's facility network identification number. Only include when required by a payer. - **`provider.firstName`** (`string`): The provider's first name. Use when the provider is an individual. - **`provider.informationReceiverAdditionalIdentifierState`** (`string`): The two-character state ID of the state that assigned the `stateLicenseNumber`. Only include when required by a payer. - **`provider.lastName`** (`string`): The provider's last name. Use when the provider is an individual. - **`provider.medicaidProviderNumber`** (`string`): The provider's Medicaid provider number. Only include when required by a payer. - **`provider.medicareProviderNumber`** (`string`): The provider's Medicare provider number. Only include when required by a payer. - **`provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). This identifier is required for all healthcare providers who are eligible to receive an NPI. Some non-traditional providers such as transportation services, durable medical equipment (DME) suppliers, or alternative medicine practitioners are not eligible to receive an NPI. If the provider doesn't have an NPI, requests with alternate IDs are virtually never supported. In the rare circumstance that a payer has instructed you to use an alternate ID, the payer will typically require you to supply either their `taxId` or `ssn` instead. - **`provider.organizationName`** (`string`): The provider's business name. Use when the provider isn't an individual. - **`provider.payorId`** (`string`): Only used for payer-to-payer transactions, which are not currently supported. Do not use. - **`provider.pharmacyProcessorNumber`** (`string`): The provider's pharmacy processor number. Only include when specifically instructed by a payer - for example, when the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - **`provider.priorIdentifierNumber`** (`string`): The provider's prior identifier number. Only include when required by a payer. - **`provider.providerCode`** (`string`) - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`provider.providerPlanNetworkIdNumber`** (`string`): The provider's plan network identification number. Only include when required by a payer. - **`provider.providerType`** (`string`): Identify the type of provider. - Allowed values: `payer`, `third-party administrator`, `employer`, `hospital`, `facility`, `gateway provider`, `plan sponsor`, `provider` - **`provider.referenceIdentification`** (`string`): The provider's [Taxonomy Code](https://x12.org/codes/provider-taxonomy-codes). Only used when the provider's taxonomy code is relevant to the eligibility/benefit inquiry. For example, an institutional provider such as a hospital may need to use a taxonomy code to specify a specific unit or department. - **`provider.serviceProviderNumber`** (`string`): The provider's service provider number. Only include when specifically instructed by a payer - for example, when the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - **`provider.servicesPlanID`** (`string`) - **`provider.ssn`** (`string`): The provider's Social Security Number (SSN). - Only include when specifically instructed by a payer - for example, if the provider doesn't have an [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier). This use case is very rarely supported, and is typically when the provider is a non-medical provider, such as a social worker, home health aide, or transportation service. - If the payer has instructed you to send an EIN but the provider operates using their SSN, use provider.taxId instead of this field. - Don't use this for Federally-administered programs, such as Medicare. - **`provider.stateLicenceNumber`** (`string`): The provider's state license number. If you include this information, you must also include the `informationReceiverAdditionalIdentifierState`. Only include when required by a payer. - **`provider.submitterIdNumber`** (`string`): The provider's submitter identification number. Only include when required by a payer. - **`provider.taxId`** (`string`): The provider's Federal Taxpayer Identification Number. This is typically the provider's EIN (Employer Identification Number), but the provider's SSN may be used if the provider does not have an EIN. Only include if required by the payer. - **`submitterTransactionIdentifier`** (`string`): This property is only relevant for asynchronous batch eligibility checks. - **`subscriber`** (`object`) (required): The primary policyholder for the insurance plan _or_ a dependent with a unique member ID. If a dependent has a unique member ID, include their information here and leave `dependents` empty. - At a minimum, our API requires that you supply at least one of these fields in the request: `memberId`, `dateOfBirth`, or `lastName`. However, each payer has different requirements, so you should supply the fields necessary for each payer to identify the subscriber in their system. - When you provide all four of `memberId`, `dateOfBirth`, `firstName`, and `lastName`, payers are required to return a response if the member is in their database. Some payers may be able to search with less information, but this varies by payer. - We recommend always including the patient's member ID when possible. - Enter the patient's name exactly as written on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Visit [patient names](https://www.stedi.com/docs/healthcare/send-eligibility-checks#patient-names) for all best practices to avoid unnecessary failures. - **`subscriber.additionalIdentification`** (`object`): Use this object when you need to provide an identification number other than or in addition to the subscriber's member ID. For example, you may provide the patient account number. Don't include the health insurance claim number or the medicaid recipient ID number here unless they are different from the member ID. - **`subscriber.additionalIdentification.agencyClaimNumber`** (`string`): The Property and Casualty Claim Number associated with the patient. You should only submit this value when when you are submitting an eligibility request to a property and casualty payer. - **`subscriber.additionalIdentification.contractNumber`** (`string`): The contract number for an existing contract between the payer and the provider requesting the eligibility check. - **`subscriber.additionalIdentification.healthInsuranceClaimNumber`** (`string`): The health insurance claim number. - **`subscriber.additionalIdentification.identificationCardSerialNumber`** (`string`): The identification card serial number. You can include this when the ID card has a number in addition to the member ID number. The Identification Card Serial Number uniquely identifies the card when multiple cards have been or will be issued to a member, such as a replacement card. - **`subscriber.additionalIdentification.insurancePolicyNumber`** (`string`): The insurance policy number. - **`subscriber.additionalIdentification.medicalRecordIdentificationNumber`** (`string`): The medical record identification number. - **`subscriber.additionalIdentification.memberIdentificationNumber`** (`string`): This property is never used in practice. Supply the subscriber's member ID in `subscriber.memberId`. - **`subscriber.additionalIdentification.patientAccountNumber`** (`string`): The patient account number. - **`subscriber.additionalIdentification.planNetworkIdentificationNumber`** (`string`): The plan network identification number. - **`subscriber.additionalIdentification.planNumber`** (`string`): The insurance plan number. - **`subscriber.additionalIdentification.policyNumber`** (`string`): The insurance group or policy number. - **`subscriber.address`** (`object`): Address information for the subscriber. When providing address information: - The `address1` and `city` properties are **required** for standard eligibility checks and MBI lookups with SSN. We also recommend including `state` for member identification. - When performing an [MBI lookup without SSN](https://www.stedi.com/docs/healthcare/mbi-lookup) (Payer ID: `MBILUNOSSN`), only `state` is required. You can omit `address1` and `city`. - **`subscriber.address.address1`** (`string`): The first line of the address. Required for all payers except payer ID `MBILUNOSSN`. - **`subscriber.address.address2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. Required for all payers except payer ID `MBILUNOSSN`. - **`subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.address.state`** (`string`): The US state or Canadian province code. For example, `TN` for Tennessee or `NB` for New Brunswick. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`subscriber.beginningCardIssueDate`** (`string`): The date the subscriber's insurance card was issued. Use when you need to specify a date range. Provide the end of the range in the `endCardIssueDate` property. - **`subscriber.beginningPlanIssueDate`** (`string`): The date the subscriber's insurance plan begins. Use when you need to specify a date range. Provide the end of the range in the `endPlanIssueDate` property. - **`subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Use to indicate the birth order when there are multiple births associated with the provided birth date. - **`subscriber.caseNumber`** (`string`): The case number associated with the subscriber. - **`subscriber.coverageLevelCode`** (`string`): This property is no longer used. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth. - **`subscriber.endCardIssueDate`** (`string`): The date the subscriber's insurance card expires. Use when you need to specify a date range. Provide the start of the range in the `beginningCardIssueDate` property. - **`subscriber.endPlanIssueDate`** (`string`): The date the subscriber's insurance plan ends. Use when you need to specify a date range. Provide the start of the range in the `beginningPlanIssueDate` property. - **`subscriber.firstName`** (`string`): The patient's first name. - **`subscriber.gender`** (`string`) - Allowed values: `M`, `F` - **`subscriber.groupNumber`** (`string`): The group number associated with the subscriber's insurance policy. - **`subscriber.healthCareCodeInformation`** (`array of HealthCareInformation objects`): Information about the subscriber's health care diagnosis. You can include up to eight entries in this array. The first array entry must have `diagnosisTypeCode` set to `ABK`. All subsequent entries must have `diagnosisTypeCode` set to `ABF`. - **`subscriber.healthCareCodeInformation[].diagnosisCode`** (`string`) (required): The diagnosis code. Omit the decimal points in diagnosis codes - the decimal point is assumed. - **`subscriber.healthCareCodeInformation[].diagnosisTypeCode`** (`string`) (required): The type of diagnosis code you are providing. You can set to `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis, `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis, `BF`- International Classification of Diseases Clinical Modification (ICD-9-CM) Diagnosis, or `ABF`- International Classification of Diseases Clinical Modification (ICD-10-CM) Diagnosis. Note that ICD-9 codes are **deprecated** and should no longer be used in eligibility checks. - Allowed values: `BK`, `ABK`, `BF`, `ABF` - **`subscriber.idCard`** (`string`): The subscriber's identification card number. Include this property when this number is different than the subscriber's member ID. This is common in Medicaid. - **`subscriber.idCardIssueDate`** (`string`): The date the subscriber's insurance card was issued. Use to specify a single date. - **`subscriber.lastName`** (`string`): The subscriber's last name. **Don't** include the subscriber's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`subscriber.medicaidRecipientIdentificationNumber`** (`string`): The Medicaid Recipient Identification Number. You can provide this number to identify the subscriber when it is the primary number the payer knows a member by (such as for Medicare or Medicaid). Do not supply this value unless it is different from the `memberId`. - **`subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. - **`subscriber.middleName`** (`string`): The patient's middle name or middle initial. - **`subscriber.planIssueDate`** (`string`): The date the subscriber's insurance plan begins. Use to specify a single date. - **`subscriber.providerCode`** (`string`): Use this for providers that are not requesting the eligibility check - the requestor is specified in the `provider` object. For example, if you are a hospital making an eligibility request, this is where you would specify information about a referring provider's role. This property is **required** when the `providerIdentifier` and `referenceIdentificationQualifier` properties are populated. You can use one of the following: `AD` - Admitting, `AT` - Attending, `BI` - Billing, `CO` - Consulting, `CV` - Covering, `H` - Hospital, `HH` - Home Health Care, `LA` - Laboratory, `OT` - Other Physician, `P1` - Pharmacist, `P2` - Pharmacy, `PC` - Primary Care Physician, `PE` - Performing, `R` - Rural Health Clinic, `RF` - Referring, `SB` - Submitting, `SK` - Skilled Nursing Facility, `SU` - Supervising - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SK`, `SU` - **`subscriber.providerIdentifier`** (`string`): The provider identifier you specified in the `referenceIdentificationQualifier` property. It is **required** if you set the `referenceIdentificationQualifier`. For example, this property could contain the provider's National Provider ID or Federal Taxpayer Identification number. If you set the `referenceIdentificationQualifier` to `PXC`, then this property should contain the provider's taxonomy code. - **`subscriber.referenceIdentificationQualifier`** (`string`): Use this for providers that are not requesting the eligibility check. This is the type of `providerIdentifier` you are providing. - Set to `HPI` when the National Provider ID is mandated for use. - Set to `PXC` if you're identifying a type of specialty associated with services provided to the subscriber. Otherwise, you can set to the following: `9K` - Servicer, `D3` - National Council for Prescription Drug Programs Pharmacy Number, `EI` - Employer's Identification Number, `HPI` - Centers for Medicare and Medicaid Services National Provider Identifier, `PXC` - Health Care Provider Taxonomy Code, `SY - Social Security Number, `TJ` - Federal Taxpayer's Identification Number - Allowed values: `9K`, `D3`, `EI`, `HPI`, `PXC`, `SY`, `TJ` - **`subscriber.spendDownAmount`** (`string`): Identify the dollar amount the subscriber will apply toward their spend down amount, if required. For some Medicaid programs, individuals must pay a certain amount towards their healthcare cost (spend down) before coverage starts. - **`subscriber.spendDownTotalBilledAmount`** (`string`): The subscriber's spend down total billed amount. - **`subscriber.ssn`** (`string`): The subscriber's Social Security Number (SSN). Many commercial and government payers ignore this property due to concerns about member privacy. However, some Medicaid programs support alternative searches using the patient's Social Security Number, instead of the member ID. - **`subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`tradingPartnerName`** (`string`): The payer's name, such as Cigna or Aetna. - **`tradingPartnerServiceId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. **Example:** ```json { "dependents": [ { "dateOfBirth": "19521121", "firstName": "Jane", "lastName": "Doe" } ], "encounter": { "serviceTypeCodes": [ "30" ] }, "provider": { "npi": "1999999984", "organizationName": "Provider Name" }, "subscriber": { "firstName": "John", "lastName": "Doe", "memberId": "UHC202649" }, "tradingPartnerServiceId": "87726" } ``` ### Responses #### 200 EligibilityCheck 200 response **Schema:** `EligibilityCheckResponseContent` **Properties:** - **`benefitsInformation`** (`array of BenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, co-pays, etc.), out of pocket maximums, and more. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. The payer may send benefits information for service type codes (STCs) you didn't request - this is expected. The STC you send in the request tells the payer the types of benefits information you want, but they aren't required to respond with exactly the same STC(s) in the response. Receiving different STCs than you requested can also mean that the payer is ignoring the STC you sent, which is why we recommend [testing payers](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes#test-payer-stc-support) to determine their support for specific STCs. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) for more information about benefit types, details about how to interpret the `benefitsInformation` array, and additional examples. - **`benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`benefitsInformation[].benefitsRelatedEntity`** (`object`): Identify another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. This array is commonly used to designate the patient's primary care provider (PCP), another organization that handles a specific carveout benefit type, or another health plan for the patient (coordination of benefits scenarios). This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - **`benefitsInformation[].benefitsRelatedEntity.address`** (`object`) - **`benefitsInformation[].benefitsRelatedEntity.address.address1`** (`string`): The first line of the address. - **`benefitsInformation[].benefitsRelatedEntity.address.address2`** (`string`): The second line of the address. - **`benefitsInformation[].benefitsRelatedEntity.address.city`** (`string`): The city. - **`benefitsInformation[].benefitsRelatedEntity.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`benefitsInformation[].benefitsRelatedEntity.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`benefitsInformation[].benefitsRelatedEntity.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`benefitsInformation[].benefitsRelatedEntity.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`benefitsInformation[].benefitsRelatedEntity.contactInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.name`** (`string`): The name of the contact person. - **`benefitsInformation[].benefitsRelatedEntity.entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntity.entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`benefitsInformation[].benefitsRelatedEntity.entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`benefitsInformation[].benefitsRelatedEntity.entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`benefitsInformation[].benefitsRelatedEntity.entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntity.entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`benefitsInformation[].benefitsRelatedEntity.entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`benefitsInformation[].benefitsRelatedEntity.entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`benefitsInformation[].benefitsRelatedEntity.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`benefitsInformation[].benefitsRelatedEntity.providerInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntity.providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`benefitsInformation[].benefitsRelatedEntity.providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`benefitsInformation[].eligibilityAdditionalInformation`** (`object`) - **`benefitsInformation[].eligibilityAdditionalInformation.codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`benefitsInformation[].eligibilityAdditionalInformation.codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`benefitsInformation[].eligibilityAdditionalInformation.codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`benefitsInformation[].eligibilityAdditionalInformation.industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`benefitsInformation[].eligibilityAdditionalInformation.industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`benefitsInformation[].eligibilityAdditionalInformation.injuredBodyPartName`** (`string`): Description of injured body parts. - **`benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`controlNumber`** (`string`): An identifier for the payer's response. - **`dependents`** (`array of ResponseDependent objects`): Information about the patient when they are a dependent. When the patient is a dependent, this array will contain a single object with the patient's information. When the patient is a subscriber, or considered to be a subscriber because they have a unique member ID, their information is returned in the `subscriber` object, and this array will be empty. When present, this object will always include the dependent's name for identification, but many payers will also return the date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the dependent's full legal name. - **`dependents[].aaaErrors`** (`array of EligibilityCheckDependentError objects`) - **`dependents[].aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `33`, `35`, `42`, `43`, `45`, `47`, `48`, `49`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `77`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA` - **`dependents[].aaaErrors[].description`** (`string`): The error description. - **`dependents[].aaaErrors[].field`** (`string`): The error type, `AAA`. - **`dependents[].aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`dependents[].aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`dependents[].aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`dependents[].address`** (`object`) - **`dependents[].address.address1`** (`string`): The first line of the address. - **`dependents[].address.address2`** (`string`): The second line of the address. - **`dependents[].address.city`** (`string`): The city. - **`dependents[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependents[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependents[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependents[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`dependents[].birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`dependents[].dateOfBirth`** (`string`): The member's date of birth. - **`dependents[].dateTimePeriod`** (`string`): The military service date. - **`dependents[].dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`dependents[].description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`dependents[].employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`dependents[].endDateTimePeriod`** (`string`): The military service end date. - **`dependents[].entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`dependents[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`dependents[].firstName`** (`string`): The member's first name. - **`dependents[].gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`dependents[].governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`dependents[].groupDescription`** (`string`): Group name - **`dependents[].groupNumber`** (`string`): The group number associated with the insurance policy. - **`dependents[].healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`dependents[].healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`dependents[].healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`dependents[].informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`dependents[].insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`dependents[].lastName`** (`string`): The member's last name. - **`dependents[].maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`dependents[].maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`dependents[].memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`dependents[].middleName`** (`string`): The member's middle name or initial. - **`dependents[].militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`dependents[].planDescription`** (`string`): Plan name - **`dependents[].planNetworkDescription`** (`string`): Plan network name - **`dependents[].planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`dependents[].planNumber`** (`string`): The plan number associated with the insurance policy. - **`dependents[].relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`dependents[].relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`dependents[].responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`dependents[].responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`dependents[].responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`dependents[].responseProvider.aaaErrors[].description`** (`string`): The error description. - **`dependents[].responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`dependents[].responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`dependents[].responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`dependents[].responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`dependents[].responseProvider.address`** (`object`) - **`dependents[].responseProvider.address.address1`** (`string`): The first line of the address. - **`dependents[].responseProvider.address.address2`** (`string`): The second line of the address. - **`dependents[].responseProvider.address.city`** (`string`): The city. - **`dependents[].responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependents[].responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependents[].responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependents[].responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`dependents[].responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`dependents[].responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`dependents[].responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`dependents[].responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`dependents[].responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`dependents[].responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`dependents[].responseProvider.payorIdentification`** (`string`): The payer identification. - **`dependents[].responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`dependents[].responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`dependents[].responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`dependents[].responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`dependents[].responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`dependents[].responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`dependents[].responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`dependents[].responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`dependents[].responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`dependents[].responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`dependents[].ssn`** (`string`): The member's Social Security Number (SSN). - **`dependents[].startDateTimePeriod`** (`string`): The military service start date. - **`dependents[].suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`dependents[].uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`id`** (`string`): A globally unique identifier for this eligibility check across all Stedi accounts. It's formatted as `ec_`. For example: `ec_550e8400-e29b-41d4-a716-446655440000`. You can use this ID to track this eligibility check and to construct deep links to eligibility checks in the Stedi portal. - **`implementationTransactionSetSyntaxError`** (`string`): The implementation transaction set error code provided in `IK502` of the 999 transaction. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.billerId`** (`string`): The biller ID Stedi assigns to this request. - **`meta.outboundTraceId`** (`string`): The unique identifier Stedi sent to identify this check to the payer. Instead of this property, we recommend using `id` to identify and track eligibility checks. An eligibility check's `id` is guaranteed to be globally unique, and you can use it to deep link to the eligibility check's results within the Stedi portal. - **`meta.senderId`** (`string`): The sender ID Stedi assigns to this request. - **`meta.submitterId`** (`string`): The submitter ID Stedi assigns to this request. - **`meta.traceId`** (`string`): A unique identifier Stedi assigns to this check. This should be the same as the `outboundTraceId`. - **`payer`** (`object`): Information about the payer providing the benefits information. The response will always include the payer's business name and an identifier, such as the payer's tax ID. Most payers also include contact information. - **`payer.aaaErrors`** (`array of EligibilityCheckPayerError objects`) - **`payer.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `04`, `41`, `42`, `79`, `80`, `T4` - **`payer.aaaErrors[].description`** (`string`): The error description. - **`payer.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`payer.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`payer.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`payer.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`payer.contactInformation`** (`object`) - **`payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`payer.contactInformation.name`** (`string`): The name of the contact person. - **`payer.employersId`** (`string`): Deprecated; The payer's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`payer.payorIdentification`** (`string`): The payer identification. - **`payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`planDateInformation`** (`object`): Contains the dates associated with the subscriber and dependents' (if applicable) insurance plan. This information is used to determine their eligibility for benefits. - Most fields contain a single date, but some can contain either a single date or a date range. Each field's documentation specifies its format. - Fields that can contain either a single date or date range include: `plan`, `eligibility`, `planBegin`, `admission`, and `service`. - The provided dates apply to every benefit within the patient's health plan unless specifically noted within a `benefitsInformation[].benefitsDateInformation` object. - If the payer sends back date(s) that are different for the subscriber and dependents, Stedi includes only the dates for the dependent in this object and omits the subscriber's date(s). Dependents can have different coverage dates than the subscriber due to qualifying life events, such as starting a new job or passing the age limit for coverage through their parent's plan. - Most payers return either `plan` or `planBegin` and `planEnd`, but the exact dates returned depend on the payer's discretion and the patient's insurance plan. - If the date of service is after the earliest ending `plan`, `eligibility`, `planEnd`, `eligibilityEnd`, `policyEffective`, or `policyExpiration` value, the patient likely doesn't have active coverage. - **`planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`planDateInformation.admission`** (`string`): The admission date or dates. - **`planDateInformation.benefit`** (`string`): The benefit date. - **`planDateInformation.benefitBegin`** (`string`): The benefit begin date. - **`planDateInformation.benefitEnd`** (`string`): The benefit end date. - **`planDateInformation.certification`** (`string`): The certification date. - **`planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`planDateInformation.completion`** (`string`): The completion date. - **`planDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`planDateInformation.discharge`** (`string`): The discharge date. - **`planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`planDateInformation.issue`** (`string`): The issue date. - **`planDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. - **`planDateInformation.periodEnd`** (`string`): The end of a period. - **`planDateInformation.periodStart`** (`string`): The start of a period. - **`planDateInformation.plan`** (`string`): Plan effective dates. - **`planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`planDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`planDateInformation.service`** (`string`): The service date or dates. - **`planDateInformation.status`** (`string`): The status date. - **`planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`planInformation.caseNumber`** (`string`): The case number - **`planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`planInformation.eligibilityCategory`** (`string`): The eligibility category - **`planInformation.facilityIdNumber`** (`string`): The facility ID number - **`planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`planInformation.familyUnitNumber`** (`string`): The family unit number - **`planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`planInformation.groupDescription`** (`string`): The group description - **`planInformation.groupNumber`** (`string`): The group number - **`planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`planInformation.issueNumber`** (`string`): The issue number - **`planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`planInformation.planDescription`** (`string`): The plan description - **`planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`planInformation.planNumber`** (`string`): The plan number - **`planInformation.policyNumber`** (`string`): The group or policy number - **`planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`planInformation.priorIdNumber`** (`string`): The prior identifier number - **`planInformation.referralNumber`** (`string`): The referral number - **`planInformation.socialSecurityNumber`** (`string`): The social security number - **`planInformation.stateLicenseNumber`** (`string`): The state license number - **`planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`planInformation.userIdentification`** (`string`): The user identification - **`planStatus`** (`array of PlanStatus objects`): Please use `benefitsInformation` instead. - **`planStatus[].planDetails`** (`string`) - **`planStatus[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`planStatus[].status`** (`string`) - **`planStatus[].statusCode`** (`string`) - **`provider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`provider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`provider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`provider.aaaErrors[].description`** (`string`): The error description. - **`provider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`provider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`provider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`provider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`provider.address`** (`object`) - **`provider.address.address1`** (`string`): The first line of the address. - **`provider.address.address2`** (`string`): The second line of the address. - **`provider.address.city`** (`string`): The city. - **`provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`provider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`provider.payorIdentification`** (`string`): The payer identification. - **`provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`provider.providerOrgName`** (`string`): The provider's organization name. - **`provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`provider.ssn`** (`string`): The Social Security Number (SSN). - **`provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`reassociationKey`** (`string`) - **`status`** (`string`): Errors Stedi encountered when generating or sending the final X12 EDI transaction to the payer. These can include validation errors and payer unavailable errors that prevent delivery. - **`subscriber`** (`object`): Information about the primary policyholder for the insurance plan listed in the original eligibility check request. The response will always include either the subscriber's name or member ID for identification, but most payers will also return the subscriber's date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the subscriber's full legal name. - **`subscriber.aaaErrors`** (`array of EligibilityCheckSubscriberError objects`) - **`subscriber.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `33`, `35`, `42`, `43`, `45`, `47`, `48`, `49`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `78`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA` - **`subscriber.aaaErrors[].description`** (`string`): The error description. - **`subscriber.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`subscriber.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`subscriber.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`subscriber.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`subscriber.address`** (`object`) - **`subscriber.address.address1`** (`string`): The first line of the address. - **`subscriber.address.address2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. - **`subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`subscriber.dateTimePeriod`** (`string`): The military service date. - **`subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`subscriber.firstName`** (`string`): The member's first name. - **`subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`subscriber.groupDescription`** (`string`): Group name - **`subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`subscriber.lastName`** (`string`): The member's last name. - **`subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`subscriber.middleName`** (`string`): The member's middle name or initial. - **`subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`subscriber.planDescription`** (`string`): Plan name - **`subscriber.planNetworkDescription`** (`string`): Plan network name - **`subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`subscriber.responseProvider.address`** (`object`) - **`subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`subscriber.responseProvider.address.city`** (`string`): The city. - **`subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`subscriberTraceNumbers`** (`array of SubscriberTraceNumber objects`): A unique identifier for the eligibility request. It's used to trace the transaction. Stedi always generates a trace number for internal tracking, and the payer may generate one as well. Stedi returns both its internal trace number and the payer's trace number (if present) in this array. You can't set your own trace number when submitting eligibility checks through this endpoint. - **`subscriberTraceNumbers[].originatingCompanyIdentifier`** (`string`): The identifier of the organization that assigned the trace number. - **`subscriberTraceNumbers[].referenceIdentification`** (`string`): The unique trace number assigned to the transaction. - **`subscriberTraceNumbers[].secondaryReferenceIdentification`** (`string`): Identifies a subdivision within the organization that assigned the trace number. - **`subscriberTraceNumbers[].traceType`** (`string`): The full name of the `traceTypeCode`. For example `Current Transaction Trace Numbers`. - **`subscriberTraceNumbers[].traceTypeCode`** (`string`): The code that identifies the type of trace number. Can be `1` - Current Transaction Trace Numbers (refers to trace numbers assigned by the payer) or `2` - Referenced Trace Numbers (refers to numbers sent in the original eligibility check request). - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original eligibility check request. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`transactionSetAcknowledgement`** (`string`): The transaction set acknowledgment code provided in in the [X12 EDI 999 response](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231/01HRF41ES1DVGCA6X1EHSRPFXZ#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.transaction_set_response_trailer_IK5). - **`warnings`** (`array of Warning objects`): Issues with your eligibility request that could affect the results, or information about the response. For example, warnings can help explain why the request was rejected. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. - **`x12`** (`string`): Typically this property contains the raw X12 EDI [271 Eligibility Benefit Response](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-response-x279a1/01GS66YHZPB37ABF34DBPSR213) from the payer. In some circumstances, this property may contain a [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) instead of a 271. A 999 indicates validation errors in the X12 EDI transaction, such as improper formatting or missing or invalid values. If the 999 is returned in this property, many of the other response properties will be empty, as they are mapped to information in the 271. **Example:** ```json { "benefitsInformation": [ { "additionalInformation": [ { "description": "PROVIDER IS OUT NETWORK FOR MEMBER" }, { "description": "FUNDING TYPE = SELF INSURED - LARGE GROUP" } ], "benefitsDateInformation": { "dateOfLastUpdate": "20240731" }, "benefitsRelatedEntities": [ { "address": { "address1": "P.O. BOX 30555", "city": "SALT LAKE CITY", "postalCode": "841300555", "state": "UT" }, "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] }, "entityIdentification": "PI", "entityIdentificationValue": "87726", "entityIdentifier": "Payer", "entityName": "UNITEDHEALTHCARE", "entityType": "Non-Person Entity" } ], "benefitsRelatedEntity": { "address": { "address1": "P.O. BOX 30555", "city": "SALT LAKE CITY", "postalCode": "841300555", "state": "UT" }, "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] }, "entityIdentification": "PI", "entityIdentificationValue": "87726", "entityIdentifier": "Payer", "entityName": "UNITEDHEALTHCARE", "entityType": "Non-Person Entity" }, "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Active Coverage", "planCoverage": "CHOICE PLUS", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ] }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "3200", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "5555.16", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "15500", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "6850", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "3200", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "5000", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "1294.84", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "9944.84", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "1800", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "benefitPercent": "0.4", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitPercent": "0.2", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "benefitPercent": "0.2", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitPercent": "0.2", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "C", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "HIGHEST BENEFIT" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitsRelatedEntities": [ { "entityIdentification": "XX", "entityIdentificationValue": "1235600834", "entityIdentifier": "Provider", "entityName": "NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES", "entityType": "Non-Person Entity" } ], "benefitsRelatedEntity": { "entityIdentification": "XX", "entityIdentificationValue": "1235600834", "entityIdentifier": "Provider", "entityName": "NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES", "entityType": "Non-Person Entity" }, "code": "X", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Health Care Facility" } ], "controlNumber": "345459952", "dependents": [ { "dateOfBirth": "19521121", "entityType": "Person", "firstName": "Jane", "gender": "F", "insuredIndicator": "N", "lastName": "Doe", "maintenanceReasonCode": "25", "maintenanceTypeCode": "001", "middleName": "Alex", "planNumber": "UVdQAC5j6f", "relationToSubscriber": "Spouse", "relationToSubscriberCode": "01" } ], "eligibilitySearchId": "019f4829-fecb-7b60-86a9-6ca38f7d1db7", "errors": [], "id": "ec_019f4829-fecb-7b60-86a9-6c900ad94bfb", "meta": { "applicationMode": "test", "outboundTraceId": "01KX42KZPCP7W5HHVSEY1Z8TEW", "senderId": "STEDI", "submitterId": "117151744", "traceId": "01JDQV00485EPP4D6BD8GM1SWM" }, "payer": { "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] }, "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "name": "UNITEDHEALTHCARE", "payorIdentification": "87726" }, "planDateInformation": { "plan": "20240101-20241231" }, "planInformation": { "groupNumber": "186084", "planNumber": "UVdQAC5j6f" }, "planStatus": [ { "planDetails": "CHOICE PLUS", "serviceTypeCodes": [ "30" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" } ], "provider": { "entityIdentifier": "Provider", "entityType": "Non-Person Entity", "npi": "1999999984", "providerName": "Jerde - Sauer" }, "reassociationKey": "345459952", "subscriber": { "address": { "address1": "123 Sunnyvale Lane", "city": "Fosterburgh", "postalCode": "91016", "state": "TX" }, "dateOfBirth": "19760214", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "firstName": "John", "gender": "M", "groupNumber": "186084", "lastName": "Doe", "memberId": "UHC202649", "middleName": "A", "planNumber": "UVdQAC5j6f" }, "tradingPartnerServiceId": "87726", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *260709*1835*^*00501*345459952*0*T*`~GS*HB*STEDI*117151744*20260709*183539*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01JDQV00485EPP4D6BD8GM1SWM*20260325*0901~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~PER*IC**UR*WWW.UHCPROVIDER.COM~HL*2*1*21*1~NM1*1P*2*Jerde - Sauer*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John*A***MI*UHC202649~REF*6P*186084~REF*18*UVdQAC5j6f~N3*123 Sunnyvale Lane~N4*Fosterburgh*TX*91016~DMG*D8*19760214*M~DTP*291*RD8*20240101-20241231~HL*4*3*23*0~NM1*03*1*Doe*Jane*Alex~REF*18*UVdQAC5j6f~DMG*D8*19521121*F~INS*N*01*001*25~EB*1**30*C1*CHOICE PLUS*******W~DTP*636*D8*20240731~MSG*PROVIDER IS OUT NETWORK FOR MEMBER~MSG*FUNDING TYPE = SELF INSURED - LARGE GROUP~LS*2120~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~N3*P.O. BOX 30555~N4*SALT LAKE CITY*UT*841300555~PER*IC**UR*WWW.UHCPROVIDER.COM~LE*2120~EB*C*FAM*30***23*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***24*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**24*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***24*3200*****W~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**24*5555.16*****W~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*15500*****N~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*6850*****Y~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***23*3200*****Y~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*0*****Y~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***23*5000*****N~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*1294.84*****Y~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*9944.84*****N~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*1800*****N~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*1**A6*********Y~MSG*HIGHEST BENEFIT~EB*1**A6*********Y~MSG*ABLETO FULLY FUNDED~EB*1**A6*********Y~MSG*ABLETO PARTIALLY FUNDED~EB*1**A6*********W~EB*A*IND*A6***27**.4****N~III*ZZ*11~EB*A*IND*A6***27**.2****Y~III*ZZ*11~EB*A*IND*A6***27**.2****Y~MSG*HIGHEST BENEFIT~III*ZZ*11~EB*A*IND*A6***27**.2****Y~MSG*ABLETO PARTIALLY FUNDED~III*ZZ*11~EB*A*IND*A6***27**0****Y~MSG*ABLETO FULLY FUNDED~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*HIGHEST BENEFIT~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*ABLETO PARTIALLY FUNDED~III*ZZ*11~EB*B*IND*A6***27*0*****W~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*ABLETO FULLY FUNDED~III*ZZ*11~EB*C**A6***27*0*****Y~EB*C*FAM*A6***23*0*****Y~MSG*ABLETO FULLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*ABLETO PARTIALLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*HIGHEST BENEFIT~EB*F*IND*A6***27*0*****Y~MSG*ABLETO FULLY FUNDED~EB*F*IND*A6***27*0*****Y~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*ABLETO PARTIALLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*HIGHEST BENEFIT~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*ABLETO FULLY FUNDED~EB*X***********W~LS*2120~NM1*1P*2*NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES*****XX*1235600834~LE*2120~SE*125*0001~GE*1*1~IEA*1*345459952~" } ``` #### 400 EligibilityCheck400Error 400 response **Schema:** `EligibilityCheck400ErrorResponseContent` **Example:** ```json { "controlNumber": "000647813", "eligibilitySearchId": "0198afa8-1610-7602-a436-911cb4bf2a9f", "errors": [ { "code": "44", "description": "Invalid/Missing Provider Name", "field": "AAA", "followupAction": "Please Correct and Resubmit", "location": "Loop 2100B", "possibleResolutions": "Provider's NPI is registered with incorrect name at the payer. Contact the payer directly using the information in the `payer.contactInformation` object (if available) to resolve the issue." } ], "id": "ec_650e8400-e29b-41d4-a716-446655440001", "meta": { "applicationMode": "test", "outboundTraceId": "01K2QTG5GGN7SSM34JMHS7QBDZ", "senderId": "STEDI", "submitterId": "117151744", "traceId": "01K2QTG5GGN7SSM34JMHS7QBDZ" }, "payer": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "name": "100935", "payorIdentification": "100935" }, "planDateInformation": { "plan": "20240726" }, "provider": { "aaaErrors": [ { "code": "44", "description": "Invalid/Missing Provider Name", "field": "AAA", "followupAction": "Please Correct and Resubmit", "location": "Loop 2100B", "possibleResolutions": "Provider's NPI is registered with incorrect name at the payer. Contact the payer directly using the information in the `payer.contactInformation` object (if available) to resolve the issue." } ], "entityIdentifier": "Provider", "entityType": "Person", "npi": "1447848577", "providerName": "SIMPSON" }, "reassociationKey": "000647813", "subscriber": { "dateOfBirth": "20240606", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "firstName": "ABE", "lastName": "STEDI" }, "subscriberTraceNumbers": [ { "originatingCompanyIdentifier": "3117151744", "referenceIdentification": "01K2QTG5GJ8K030SK9QDWF5HD9", "traceType": "Current Transaction Trace Numbers", "traceTypeCode": "1" } ], "tradingPartnerServiceId": "BS001", "warnings": [ { "code": "response::271::invalid_subscriber_insured_id", "description": "[Subscriber/dependent] ID must use one of these formats: a three character alpha-numeric prefix (no zeros or ones) followed by a maximum of 14 alpha-numeric characters, an `R` followed by exactly 8 numbers, or an `H` followed by exactly 8 or 10 numbers." } ], "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *250815*1734*^*00501*000647813*0*T*:~GS*HB*STEDI*117151744*20250815*173448*1*X*005010X279A1~ST*271*1001*005010X279A1~BHT*0022*11*01K2QTG5GGN7SSM34JMHS7QBDZ*20250815*1734~HL*1**20*1~NM1*PR*2*100935*****PI*100935~HL*2*1*21*1~NM1*1P*1*SIMPSON*****XX*1447848577~AAA*N**44*C~HL*3*2*22*0~TRN*1*01K2QTG5GJ8K030SK9QDWF5HD9*3117151744~NM1*IL*1*STEDI*ABE~DMG*D8*20240606~DTP*291*D8*20240726~SE*13*1001~GE*1*1~IEA*1*000647813~" } ``` #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Real-Time Eligibility Check (270/271) Raw X12 Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility-raw-x12 [Real-time eligibility checks](/healthcare/send-eligibility-checks) are ideal for in-person patient visits, telehealth appointments, and other scenarios where you need immediate information about a patient's coverage. This endpoint is ideal if you have an existing system that generates X12 EDI files and you want to send them through Stedi. 1. Call this endpoint with payload in [270 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-inquiry-x279a1/01GRYB6GTDJ4MEP5Z16CGMQWT6). Note that the request must include `BHT03` (Submitter Transaction Identifier) and the Payer ID in `Loop 2100A NM109`. We recommend reviewing the requirements for a [basic eligibility request](/healthcare/send-eligibility-checks#body---x12-edi). 2. Stedi validates the EDI and sends the eligibility check to the payer. 3. The endpoint returns a synchronous response from the payer in both JSON and raw X12 EDI format. The response contains the patient's eligibility and benefits information. Note that our documentation lists all enums officially allowed in the eligibility response. Some payers return non-compliant values, which Stedi passes through as is. Test your integration with [eligibility mock requests](/healthcare/api-reference/mock-requests-eligibility-checks). ## API Specification Submit a real-time 270/271 eligibility check in raw X12 EDI format **Endpoint:** `POST /change/medicalnetwork/eligibility/v3/raw-x12` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`X-Forwarded-For`** (header): - Type: `string` ### Request Body **Schema:** `EligibilityRawX12CheckRequestContent` **Properties:** - **`eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`externalPatientId`** (`string`): A unique identifier for the patient that Stedi uses to identify and correlate historical eligibility checks for the same individual. We recommend including this value in all requests. - **`x12`** (`string`) (required) **Example:** ```json { "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*UHC202649~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*19521121~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~" } ``` ### Responses #### 200 EligibilityRawX12Check 200 response **Schema:** `EligibilityRawX12CheckResponseContent` **Properties:** - **`benefitsInformation`** (`array of BenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, co-pays, etc.), out of pocket maximums, and more. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. The payer may send benefits information for service type codes (STCs) you didn't request - this is expected. The STC you send in the request tells the payer the types of benefits information you want, but they aren't required to respond with exactly the same STC(s) in the response. Receiving different STCs than you requested can also mean that the payer is ignoring the STC you sent, which is why we recommend [testing payers](https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes#test-payer-stc-support) to determine their support for specific STCs. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) for more information about benefit types, details about how to interpret the `benefitsInformation` array, and additional examples. - **`benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`benefitsInformation[].benefitsRelatedEntity`** (`object`): Identify another entity associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. This array is commonly used to designate the patient's primary care provider (PCP), another organization that handles a specific carveout benefit type, or another health plan for the patient (coordination of benefits scenarios). This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - **`benefitsInformation[].benefitsRelatedEntity.address`** (`object`) - **`benefitsInformation[].benefitsRelatedEntity.address.address1`** (`string`): The first line of the address. - **`benefitsInformation[].benefitsRelatedEntity.address.address2`** (`string`): The second line of the address. - **`benefitsInformation[].benefitsRelatedEntity.address.city`** (`string`): The city. - **`benefitsInformation[].benefitsRelatedEntity.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`benefitsInformation[].benefitsRelatedEntity.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`benefitsInformation[].benefitsRelatedEntity.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`benefitsInformation[].benefitsRelatedEntity.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`benefitsInformation[].benefitsRelatedEntity.contactInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`benefitsInformation[].benefitsRelatedEntity.contactInformation.name`** (`string`): The name of the contact person. - **`benefitsInformation[].benefitsRelatedEntity.entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntity.entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`benefitsInformation[].benefitsRelatedEntity.entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`benefitsInformation[].benefitsRelatedEntity.entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`benefitsInformation[].benefitsRelatedEntity.entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`benefitsInformation[].benefitsRelatedEntity.entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`benefitsInformation[].benefitsRelatedEntity.entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`benefitsInformation[].benefitsRelatedEntity.entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`benefitsInformation[].benefitsRelatedEntity.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`benefitsInformation[].benefitsRelatedEntity.providerInformation`** (`object`) - **`benefitsInformation[].benefitsRelatedEntity.providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`benefitsInformation[].benefitsRelatedEntity.providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`benefitsInformation[].eligibilityAdditionalInformation`** (`object`) - **`benefitsInformation[].eligibilityAdditionalInformation.codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`benefitsInformation[].eligibilityAdditionalInformation.codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`benefitsInformation[].eligibilityAdditionalInformation.codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`benefitsInformation[].eligibilityAdditionalInformation.industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`benefitsInformation[].eligibilityAdditionalInformation.industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`benefitsInformation[].eligibilityAdditionalInformation.injuredBodyPartName`** (`string`): Description of injured body parts. - **`benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`controlNumber`** (`string`): An identifier for the payer's response. - **`dependents`** (`array of ResponseDependent objects`): Information about the patient when they are a dependent. When the patient is a dependent, this array will contain a single object with the patient's information. When the patient is a subscriber, or considered to be a subscriber because they have a unique member ID, their information is returned in the `subscriber` object, and this array will be empty. When present, this object will always include the dependent's name for identification, but many payers will also return the date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the dependent's full legal name. - **`dependents[].aaaErrors`** (`array of EligibilityCheckDependentError objects`) - **`dependents[].aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `33`, `35`, `42`, `43`, `45`, `47`, `48`, `49`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `77`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA` - **`dependents[].aaaErrors[].description`** (`string`): The error description. - **`dependents[].aaaErrors[].field`** (`string`): The error type, `AAA`. - **`dependents[].aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`dependents[].aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`dependents[].aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`dependents[].address`** (`object`) - **`dependents[].address.address1`** (`string`): The first line of the address. - **`dependents[].address.address2`** (`string`): The second line of the address. - **`dependents[].address.city`** (`string`): The city. - **`dependents[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependents[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependents[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependents[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`dependents[].birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`dependents[].dateOfBirth`** (`string`): The member's date of birth. - **`dependents[].dateTimePeriod`** (`string`): The military service date. - **`dependents[].dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`dependents[].description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`dependents[].employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`dependents[].endDateTimePeriod`** (`string`): The military service end date. - **`dependents[].entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`dependents[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`dependents[].firstName`** (`string`): The member's first name. - **`dependents[].gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`dependents[].governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`dependents[].groupDescription`** (`string`): Group name - **`dependents[].groupNumber`** (`string`): The group number associated with the insurance policy. - **`dependents[].healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`dependents[].healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`dependents[].healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`dependents[].informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`dependents[].insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`dependents[].lastName`** (`string`): The member's last name. - **`dependents[].maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`dependents[].maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`dependents[].memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`dependents[].middleName`** (`string`): The member's middle name or initial. - **`dependents[].militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`dependents[].planDescription`** (`string`): Plan name - **`dependents[].planNetworkDescription`** (`string`): Plan network name - **`dependents[].planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`dependents[].planNumber`** (`string`): The plan number associated with the insurance policy. - **`dependents[].relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`dependents[].relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`dependents[].responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`dependents[].responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`dependents[].responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`dependents[].responseProvider.aaaErrors[].description`** (`string`): The error description. - **`dependents[].responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`dependents[].responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`dependents[].responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`dependents[].responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`dependents[].responseProvider.address`** (`object`) - **`dependents[].responseProvider.address.address1`** (`string`): The first line of the address. - **`dependents[].responseProvider.address.address2`** (`string`): The second line of the address. - **`dependents[].responseProvider.address.city`** (`string`): The city. - **`dependents[].responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`dependents[].responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`dependents[].responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`dependents[].responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`dependents[].responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`dependents[].responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`dependents[].responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`dependents[].responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`dependents[].responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`dependents[].responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`dependents[].responseProvider.payorIdentification`** (`string`): The payer identification. - **`dependents[].responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`dependents[].responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`dependents[].responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`dependents[].responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`dependents[].responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`dependents[].responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`dependents[].responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`dependents[].responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`dependents[].responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`dependents[].responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`dependents[].ssn`** (`string`): The member's Social Security Number (SSN). - **`dependents[].startDateTimePeriod`** (`string`): The military service start date. - **`dependents[].suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`dependents[].uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`eligibilitySearchId`** (`string`): An identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](https://www.stedi.com/docs/healthcare/eligibility-views). This property is for use by Stedi tools only, such as Stedi's MCP server. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`id`** (`string`): A globally unique identifier for this eligibility check across all Stedi accounts. It's formatted as `ec_`. For example: `ec_550e8400-e29b-41d4-a716-446655440000`. You can use this ID to track this eligibility check and to construct deep links to eligibility checks in the Stedi portal. - **`implementationTransactionSetSyntaxError`** (`string`): The implementation transaction set error code provided in `IK502` of the 999 transaction. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.billerId`** (`string`): The biller ID Stedi assigns to this request. - **`meta.outboundTraceId`** (`string`): The transaction identifier in the outbound request's `BHT03` element that Stedi assigns. Although a unique identifier, instead of this property, we recommend using `id` to identify and track eligibility checks. An eligibility check's `id` is guaranteed to be globally unique, and you can use it to deep link to the eligibility check's results within the Stedi portal. - **`meta.senderId`** (`string`): The sender ID Stedi assigns to this request. - **`meta.submitterId`** (`string`): The submitter ID Stedi assigns to this request. - **`meta.traceId`** (`string`): The transaction identifier in the response's `BHT03` element, taken from the request's `BHT03` element. - **`payer`** (`object`): Information about the payer providing the benefits information. The response will always include the payer's business name and an identifier, such as the payer's tax ID. Most payers also include contact information. - **`payer.aaaErrors`** (`array of EligibilityCheckPayerError objects`) - **`payer.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `04`, `41`, `42`, `79`, `80`, `T4` - **`payer.aaaErrors[].description`** (`string`): The error description. - **`payer.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`payer.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`payer.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`payer.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`payer.contactInformation`** (`object`) - **`payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`payer.contactInformation.name`** (`string`): The name of the contact person. - **`payer.employersId`** (`string`): Deprecated; The payer's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`payer.payorIdentification`** (`string`): The payer identification. - **`payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`planDateInformation`** (`object`): Contains the dates associated with the subscriber and dependents' (if applicable) insurance plan. This information is used to determine their eligibility for benefits. - Most fields contain a single date, but some can contain either a single date or a date range. Each field's documentation specifies its format. - Fields that can contain either a single date or date range include: `plan`, `eligibility`, `planBegin`, `admission`, and `service`. - The provided dates apply to every benefit within the patient's health plan unless specifically noted within a `benefitsInformation[].benefitsDateInformation` object. - If the payer sends back date(s) that are different for the subscriber and dependents, Stedi includes only the dates for the dependent in this object and omits the subscriber's date(s). Dependents can have different coverage dates than the subscriber due to qualifying life events, such as starting a new job or passing the age limit for coverage through their parent's plan. - Most payers return either `plan` or `planBegin` and `planEnd`, but the exact dates returned depend on the payer's discretion and the patient's insurance plan. - If the date of service is after the earliest ending `plan`, `eligibility`, `planEnd`, `eligibilityEnd`, `policyEffective`, or `policyExpiration` value, the patient likely doesn't have active coverage. - **`planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`planDateInformation.admission`** (`string`): The admission date or dates. - **`planDateInformation.benefit`** (`string`): The benefit date. - **`planDateInformation.benefitBegin`** (`string`): The benefit begin date. - **`planDateInformation.benefitEnd`** (`string`): The benefit end date. - **`planDateInformation.certification`** (`string`): The certification date. - **`planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`planDateInformation.completion`** (`string`): The completion date. - **`planDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`planDateInformation.discharge`** (`string`): The discharge date. - **`planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`planDateInformation.issue`** (`string`): The issue date. - **`planDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. - **`planDateInformation.periodEnd`** (`string`): The end of a period. - **`planDateInformation.periodStart`** (`string`): The start of a period. - **`planDateInformation.plan`** (`string`): Plan effective dates. - **`planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`planDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`planDateInformation.service`** (`string`): The service date or dates. - **`planDateInformation.status`** (`string`): The status date. - **`planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`planInformation.caseNumber`** (`string`): The case number - **`planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`planInformation.eligibilityCategory`** (`string`): The eligibility category - **`planInformation.facilityIdNumber`** (`string`): The facility ID number - **`planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`planInformation.familyUnitNumber`** (`string`): The family unit number - **`planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`planInformation.groupDescription`** (`string`): The group description - **`planInformation.groupNumber`** (`string`): The group number - **`planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`planInformation.issueNumber`** (`string`): The issue number - **`planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`planInformation.planDescription`** (`string`): The plan description - **`planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`planInformation.planNumber`** (`string`): The plan number - **`planInformation.policyNumber`** (`string`): The group or policy number - **`planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`planInformation.priorIdNumber`** (`string`): The prior identifier number - **`planInformation.referralNumber`** (`string`): The referral number - **`planInformation.socialSecurityNumber`** (`string`): The social security number - **`planInformation.stateLicenseNumber`** (`string`): The state license number - **`planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`planInformation.userIdentification`** (`string`): The user identification - **`planStatus`** (`array of PlanStatus objects`): Please use `benefitsInformation` instead. - **`planStatus[].planDetails`** (`string`) - **`planStatus[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`planStatus[].status`** (`string`) - **`planStatus[].statusCode`** (`string`) - **`provider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`provider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`provider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`provider.aaaErrors[].description`** (`string`): The error description. - **`provider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`provider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`provider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`provider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`provider.address`** (`object`) - **`provider.address.address1`** (`string`): The first line of the address. - **`provider.address.address2`** (`string`): The second line of the address. - **`provider.address.city`** (`string`): The city. - **`provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`provider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`provider.payorIdentification`** (`string`): The payer identification. - **`provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`provider.providerOrgName`** (`string`): The provider's organization name. - **`provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`provider.ssn`** (`string`): The Social Security Number (SSN). - **`provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`reassociationKey`** (`string`) - **`status`** (`string`): Errors Stedi encountered when generating or sending the final X12 EDI transaction to the payer. These can include validation errors and payer unavailable errors that prevent delivery. - **`subscriber`** (`object`): Information about the primary policyholder for the insurance plan listed in the original eligibility check request. The response will always include either the subscriber's name or member ID for identification, but most payers will also return the subscriber's date of birth and other identifying information. Some payers truncate names to fit their own technical limits, so the payer may not return the subscriber's full legal name. - **`subscriber.aaaErrors`** (`array of EligibilityCheckSubscriberError objects`) - **`subscriber.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `33`, `35`, `42`, `43`, `45`, `47`, `48`, `49`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `78`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA` - **`subscriber.aaaErrors[].description`** (`string`): The error description. - **`subscriber.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`subscriber.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`subscriber.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`subscriber.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`subscriber.address`** (`object`) - **`subscriber.address.address1`** (`string`): The first line of the address. - **`subscriber.address.address2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. - **`subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`subscriber.dateTimePeriod`** (`string`): The military service date. - **`subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`subscriber.firstName`** (`string`): The member's first name. - **`subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`subscriber.groupDescription`** (`string`): Group name - **`subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`subscriber.lastName`** (`string`): The member's last name. - **`subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`subscriber.middleName`** (`string`): The member's middle name or initial. - **`subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`subscriber.planDescription`** (`string`): Plan name - **`subscriber.planNetworkDescription`** (`string`): Plan network name - **`subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`subscriber.responseProvider.address`** (`object`) - **`subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`subscriber.responseProvider.address.city`** (`string`): The city. - **`subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`subscriberTraceNumbers`** (`array of SubscriberTraceNumber objects`): A unique identifier for the eligibility request. It's used to trace the transaction. Stedi always generates a trace number for internal tracking, and the payer may generate one as well. You can also optionally [supply your own trace number](https://www.stedi.com/docs/healthcare/send-eligibility-checks#trace-number) in a `TRN` segment. Stedi returns its internal trace number in this array as well as the trace numbers from you and the payer (if provided). - **`subscriberTraceNumbers[].originatingCompanyIdentifier`** (`string`): The identifier of the organization that assigned the trace number. - **`subscriberTraceNumbers[].referenceIdentification`** (`string`): The unique trace number assigned to the transaction. - **`subscriberTraceNumbers[].secondaryReferenceIdentification`** (`string`): Identifies a subdivision within the organization that assigned the trace number. - **`subscriberTraceNumbers[].traceType`** (`string`): The full name of the `traceTypeCode`. For example `Current Transaction Trace Numbers`. - **`subscriberTraceNumbers[].traceTypeCode`** (`string`): The code that identifies the type of trace number. Can be `1` - Current Transaction Trace Numbers (refers to trace numbers assigned by the payer) or `2` - Referenced Trace Numbers (refers to numbers sent in the original eligibility check request). - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original eligibility check request. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`transactionSetAcknowledgement`** (`string`): The transaction set acknowledgment code provided in in the [X12 EDI 999 response](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231/01HRF41ES1DVGCA6X1EHSRPFXZ#properties.heading.properties.transaction_set_response_header_AK2_loop.items.properties.transaction_set_response_trailer_IK5). - **`warnings`** (`array of Warning objects`): Issues with your eligibility request that could affect the results, or information about the response. For example, warnings can help explain why the request was rejected. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. - **`x12`** (`string`): Typically this property contains the raw X12 EDI [271 Eligibility Benefit Response](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-response-x279a1/01GS66YHZPB37ABF34DBPSR213) from the payer. In some circumstances, this property may contain a [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) instead of a 271. A 999 indicates validation errors in the X12 EDI transaction, such as improper formatting or missing or invalid values. If the 999 is returned in this property, many of the other response properties will be empty, as they are mapped to information in the 271. **Example:** ```json { "benefitsInformation": [ { "additionalInformation": [ { "description": "PROVIDER IS OUT NETWORK FOR MEMBER" }, { "description": "FUNDING TYPE = SELF INSURED - LARGE GROUP" } ], "benefitsDateInformation": { "dateOfLastUpdate": "20240731" }, "benefitsRelatedEntities": [ { "address": { "address1": "P.O. BOX 30555", "city": "SALT LAKE CITY", "postalCode": "841300555", "state": "UT" }, "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] }, "entityIdentification": "PI", "entityIdentificationValue": "87726", "entityIdentifier": "Payer", "entityName": "UNITEDHEALTHCARE", "entityType": "Non-Person Entity" } ], "benefitsRelatedEntity": { "address": { "address1": "P.O. BOX 30555", "city": "SALT LAKE CITY", "postalCode": "841300555", "state": "UT" }, "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] }, "entityIdentification": "PI", "entityIdentificationValue": "87726", "entityIdentifier": "Payer", "entityName": "UNITEDHEALTHCARE", "entityType": "Non-Person Entity" }, "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Active Coverage", "planCoverage": "CHOICE PLUS", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ] }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "3200", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "5555.16", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Year to Date", "timeQualifierCode": "24" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "15500", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "6850", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "3200", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "5000", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "1294.84", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "9944.84", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "insuranceType": "Commercial", "insuranceTypeCode": "C1", "name": "Out of Pocket (Stop Loss)", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ], "benefitAmount": "1800", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "benefitPercent": "0.4", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitPercent": "0.2", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "benefitPercent": "0.2", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitPercent": "0.2", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitPercent": "0", "code": "A", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "B", "coverageLevel": "Individual", "coverageLevelCode": "IND", "eligibilityAdditionalInformation": { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" }, "eligibilityAdditionalInformationList": [ { "codeListQualifier": "Mutually Defined", "codeListQualifierCode": "ZZ", "industry": "Office", "industryCode": "11" } ], "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "C", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "ABLETO PARTIALLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "HIGHEST BENEFIT" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "ABLETO FULLY FUNDED" } ], "benefitAmount": "0", "code": "F", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Limitations", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitsRelatedEntities": [ { "entityIdentification": "XX", "entityIdentificationValue": "1235600834", "entityIdentifier": "Provider", "entityName": "NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES", "entityType": "Non-Person Entity" } ], "benefitsRelatedEntity": { "entityIdentification": "XX", "entityIdentificationValue": "1235600834", "entityIdentifier": "Provider", "entityName": "NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES", "entityType": "Non-Person Entity" }, "code": "X", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Health Care Facility" } ], "controlNumber": "345459952", "dependents": [ { "dateOfBirth": "19521121", "entityType": "Person", "firstName": "Jane", "gender": "F", "insuredIndicator": "N", "lastName": "Doe", "maintenanceReasonCode": "25", "maintenanceTypeCode": "001", "middleName": "Alex", "planNumber": "UVdQAC5j6f", "relationToSubscriber": "Spouse", "relationToSubscriberCode": "01" } ], "eligibilitySearchId": "019f4829-fecb-7b60-86a9-6ca38f7d1db7", "errors": [], "id": "ec_019f4829-fecb-7b60-86a9-6c900ad94bfb", "meta": { "applicationMode": "test", "outboundTraceId": "01KX42KZPCP7W5HHVSEY1Z8TEW", "senderId": "STEDI", "submitterId": "117151744", "traceId": "01JDQV00485EPP4D6BD8GM1SWM" }, "payer": { "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] }, "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "name": "UNITEDHEALTHCARE", "payorIdentification": "87726" }, "planDateInformation": { "plan": "20240101-20241231" }, "planInformation": { "groupNumber": "186084", "planNumber": "UVdQAC5j6f" }, "planStatus": [ { "planDetails": "CHOICE PLUS", "serviceTypeCodes": [ "30" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" }, { "serviceTypeCodes": [ "A6" ], "status": "Active Coverage", "statusCode": "1" } ], "provider": { "entityIdentifier": "Provider", "entityType": "Non-Person Entity", "npi": "1999999984", "providerName": "Jerde - Sauer" }, "reassociationKey": "345459952", "subscriber": { "address": { "address1": "123 Sunnyvale Lane", "city": "Fosterburgh", "postalCode": "91016", "state": "TX" }, "dateOfBirth": "19760214", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "firstName": "John", "gender": "M", "groupNumber": "186084", "lastName": "Doe", "memberId": "UHC202649", "middleName": "A", "planNumber": "UVdQAC5j6f" }, "tradingPartnerServiceId": "87726", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *260709*1835*^*00501*345459952*0*T*`~GS*HB*STEDI*117151744*20260709*183539*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01JDQV00485EPP4D6BD8GM1SWM*20260325*0901~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~PER*IC**UR*WWW.UHCPROVIDER.COM~HL*2*1*21*1~NM1*1P*2*Jerde - Sauer*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John*A***MI*UHC202649~REF*6P*186084~REF*18*UVdQAC5j6f~N3*123 Sunnyvale Lane~N4*Fosterburgh*TX*91016~DMG*D8*19760214*M~DTP*291*RD8*20240101-20241231~HL*4*3*23*0~NM1*03*1*Doe*Jane*Alex~REF*18*UVdQAC5j6f~DMG*D8*19521121*F~INS*N*01*001*25~EB*1**30*C1*CHOICE PLUS*******W~DTP*636*D8*20240731~MSG*PROVIDER IS OUT NETWORK FOR MEMBER~MSG*FUNDING TYPE = SELF INSURED - LARGE GROUP~LS*2120~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~N3*P.O. BOX 30555~N4*SALT LAKE CITY*UT*841300555~PER*IC**UR*WWW.UHCPROVIDER.COM~LE*2120~EB*C*FAM*30***23*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***24*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**24*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***24*3200*****W~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**24*5555.16*****W~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*15500*****N~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*6850*****Y~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***23*3200*****Y~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*0*****Y~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***23*5000*****N~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*1294.84*****Y~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*9944.84*****N~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*1800*****N~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*1**A6*********Y~MSG*HIGHEST BENEFIT~EB*1**A6*********Y~MSG*ABLETO FULLY FUNDED~EB*1**A6*********Y~MSG*ABLETO PARTIALLY FUNDED~EB*1**A6*********W~EB*A*IND*A6***27**.4****N~III*ZZ*11~EB*A*IND*A6***27**.2****Y~III*ZZ*11~EB*A*IND*A6***27**.2****Y~MSG*HIGHEST BENEFIT~III*ZZ*11~EB*A*IND*A6***27**.2****Y~MSG*ABLETO PARTIALLY FUNDED~III*ZZ*11~EB*A*IND*A6***27**0****Y~MSG*ABLETO FULLY FUNDED~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*HIGHEST BENEFIT~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*ABLETO PARTIALLY FUNDED~III*ZZ*11~EB*B*IND*A6***27*0*****W~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*ABLETO FULLY FUNDED~III*ZZ*11~EB*C**A6***27*0*****Y~EB*C*FAM*A6***23*0*****Y~MSG*ABLETO FULLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*ABLETO PARTIALLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*HIGHEST BENEFIT~EB*F*IND*A6***27*0*****Y~MSG*ABLETO FULLY FUNDED~EB*F*IND*A6***27*0*****Y~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*ABLETO PARTIALLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*HIGHEST BENEFIT~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*ABLETO FULLY FUNDED~EB*X***********W~LS*2120~NM1*1P*2*NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES*****XX*1235600834~LE*2120~SE*125*0001~GE*1*1~IEA*1*345459952~" } ``` #### 400 EligibilityRawX12Check400Error 400 response **Schema:** `EligibilityRawX12Check400ErrorResponseContent` **Example:** ```json { "eligibilitySearchId": "0198afb0-0e35-7ed3-bc66-6c387c60f4bb", "errors": [ { "code": "71", "description": "Parse errors: Loop has fewer than the minimum of 1 items", "followupAction": "Please Correct and Resubmit", "location": "subscriber_level_HL_loop", "possibleResolutions": "The X12 request could not be parsed. Verify the request is a valid 270 transaction." } ], "id": "ec_650e8400-e29b-41d4-a716-446655440002", "status": "ERROR" } ``` #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Real-Time Eligibility Check (270/271) SOAP Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility-soap Submit real-time eligibility checks over SOAP using the CAQH CORE vC2.2.0 XML Schema [Real-time eligibility checks](/healthcare/send-eligibility-checks) are ideal for in-person patient visits, telehealth appointments, and other scenarios where you need immediate information about a patient's coverage. This endpoint is ideal when you must meet CAQH Core Connectivity Safe Harbor requirements or integrate with systems requiring CAQH CORE-compliant SOAP connectivity. 1. Call this endpoint with a request in XML format. The XML must conform to the [CAQH CORE vC2.2.0 XML Schema](https://www.caqh.org/core/connectivity). The `Payload` element must contain a valid eligibility check in [270 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-inquiry-x279a1/01GRYB6GTDJ4MEP5Z16CGMQWT6). We recommend reviewing the requirements for a [basic eligibility request](/healthcare/send-eligibility-checks#body---x12-edi). 2. Stedi validates your eligibility check and sends it to the payer. 3. The endpoint returns a synchronous SOAP response in [XML format](#response). It contains the full [271 X12 EDI](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-response-x279a1/01GS66YHZPB37ABF34DBPSR213) response from the payer containing the patient's eligibility and benefits information. Test your integration with [eligibility mock requests](/healthcare/api-reference/mock-requests-eligibility-checks). ## Headers [#headers] | Name | Required | Description | | ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Content-Type` | Yes | Set to `application/soap+xml`. | | `X-Forwarded-For` | No | **(CMS requests only):** Starting November 8, 2025, the Centers for Medicare & Medicaid Services (CMS) requires submitters to include network IP addresses from an eligibility request's point of origin through receipt by the HETS system.
  • To comply with this requirement, you may need to include the `X-Forwarded-For` header in requests to CMS.
  • When present, this header should contain a comma-separated list of upstream IP addresses, starting with the originating system and continuing through every intermediary. You can exclude your IP address from the list.
  • Stedi blocks eligibility requests to CMS when any IP address in the chain – the originating IP address or any in the `X-Forwarded-For` header – is located outside the United States.
  • Visit [CMS traceability requirements](/healthcare/send-eligibility-checks#cms-traceability-requirements) for details and examples.
| ## Request [#request] The request payload must be XML that conforms to the [CAQH CORE vC2.2.0 XML Schema](https://www.caqh.org/core/connectivity). It consists of three main parts: the envelope, the header, and the body. ```xml ... ... ``` ### Envelope [#envelope] The SOAP `Envelope` element wraps both the header and body. It defines the message structure according to the SOAP specification. ```xml ``` `Envelope` must declare the following namespaces: {/* prettier-ignore-start */} | Namespace declaration | Required | Description | | --------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- | | `xmlns:soapenv` | Yes | Declares the XML namespace for the SOAP envelope. Must be set to `http://www.w3.org/2003/05/soap-envelope`. | | `xmlns:cor` | Yes | Declares the XML namespace for CAQH CORE rules. Must be set to `http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd`. | {/* prettier-ignore-end */} ### Header [#header] The `Header` element specifies the WS-Security namespace (`wsse`) and contains the required credentials for authentication. ```xml STEDI-ACCOUNT-ID STEDI-API-KEY ``` `Header` must include the following elements: {/* prettier-ignore-start */} | Element | Required | Description | | --------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `wsse:Security` | Yes | The parent container for the security token. It includes:
  • The `soapenv:mustUnderstand` attribute, set to `true`.
  • The `xmlns:wsse` namespace declaration, set to `http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd`
  • The `xmlns:wsu` namespace declaration, set to `http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd`
| | `wsse:Username` | Yes | Set this to your **Stedi Account ID**. You can find your account ID at the end of any Stedi portal URL. For example, in `https://portal.stedi.com/app/healthcare/eligibility?account=1111-33333-55555`, the account ID is `1111-33333-55555`. | | `wsse:Password` | Yes | Set this to your **API Key**. Use a test API key when submitting mock requests. You can create and manage API keys from the [API Keys page](https://portal.stedi.com/app/settings/developer/api-keys) in the Stedi portal. | {/* prettier-ignore-end */} ### Body [#body] The `Body` element contains the request details, and it must conform to the [CAQH CORE XML Schema vC2.2.0](https://www.caqh.org/core/connectivity). ```xml X12_270_Request_005010X279A1 RealTime YOUR-PAYLOAD-ID 2007-08-30T10:20:34.000Z SENDER-ID RECEIVER-ID 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*UHC202649~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*19521121~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~]]> ``` `Body` must include the following elements: {/* prettier-ignore-start */} | Element | Required | Description | | ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PayloadType` | Yes | The type of transaction. Must be set to `X12_270_Request_005010X279A1`. | | `ProcessingMode` | Yes | The processing mode. Must be set to `RealTime`. | | `PayloadID` | Yes | A unique identifier for the request. Must be a valid UUID. | | `TimeStamp` | Yes | UTC time in ISO 8601 format, such as `2024-07-28T12:00:00Z`. | | `SenderID` | Yes | An identifier for the transaction sender.
  • Can be up to 50 characters.
  • Set this to the value you plan to use in the eligibility check's `ISA06` (Interchange Sender ID) element.
| | `ReceiverID` | Yes | An identifier for the transaction receiver.
  • Can be up to 50 characters.
  • Set this to the value you plan to use in the eligibility check's `ISA08` (Interchange Receiver ID) element.
| | `CORERuleVersion` | Yes | The CAQH CORE rule version. Must be set to `2.2.0`. | | `Payload` | Yes | The X12 EDI 270 eligibility check wrapped in ``.
  • Must conform to [270 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-inquiry-x279a1/01GRYB6GTDJ4MEP5Z16CGMQWT6).
  • We recommend reviewing the requirements for a [basic eligibility request](/healthcare/send-eligibility-checks#body---x12-edi).
| {/* prettier-ignore-end */} ## Response [#response] The HTTP response must include the following additional headers: | Header | Description | Example | | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | | `stedi-id` | A Stedi-assigned unique identifier for the eligibility check, formatted as `ec_`. You can use this ID to track the eligibility check and deep link to its results in the Stedi portal. | `ec_f81d4fae-7dec-11d0-a765-00a0c91e6b12` | | `stedi-eligibility-search-id` | A Stedi-assigned identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](/healthcare/eligibility-views#eligibility-search). | `01997873-bebb-7b33-81ef-f408866dfb2cb` | The response body is a SOAP message, and its structure is similar to the request. The `Payload` element typically contains the payer's X12 EDI 271 response. However, if you send a request that fails X12 EDI validation, it will contain a 999 Implementation Acknowledgment indicating the errors. ```xml X12_271_Response_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2025-08-06T22:23:50Z RECEIVER_ID STEDI 2.2.0 Success ``` The response body includes the following elements: {/* prettier-ignore-start */} | Element | Description | | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `PayloadType` | The type of the payload returned in the response.
  • `X12_271_Response_005010X279A1` for requests that pass X12 EDI validation. A 271 can contain benefits information for the patient or [`AAA` errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors).
  • `X12_999_Response_005010X231A1` for requests that fail [X12 EDI validation](/healthcare/eligibility-troubleshooting#x12-edi-validation-errors).
  • `CoreEnvelopeError` when there's a [Core-compliant error](/healthcare/eligibility-troubleshooting#core-compliant-errors) or Stedi couldn't parse the X12 EDI envelope.
| | `ProcessingMode` | The processing mode used for the request. This is always `RealTime`. | | `PayloadID` | A unique identifier Stedi generated for the transaction. This won't be the same value you submitted as the `PayloadID` in the request. | | `TimeStamp` | The timestamp when the response was generated in ISO 8601 format. | | `SenderID` | The ID of the sender of the response. This is always the same as the `ReceiverID` in the request. | | `ReceiverID` | The ID of the receiver of the response. This is always the same as the `SenderID` in the request. | | `CORERuleVersion` | The CAQH CORE rule version. This is always `2.2.0`. | | `Payload` |The X12 EDI response.
  • 271 Eligibility Benefit Response for requests that pass X12 EDI validation. A 271 can contain benefits information for the patient or [`AAA` errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors).
  • 999 Implementation Acknowledgment when the request fails [X12 EDI validation](/healthcare/eligibility-troubleshooting#x12-edi-validation-errors).
  • Empty when the request fails due to a [CORE-compliant error](/healthcare/eligibility-troubleshooting#core-compliant-errors) or because Stedi couldn't parse the X12 EDI envelope.
| | `ErrorCode` | The error code, if any, associated with the response. These errors typically indicate issues with the request body, such as missing or invalid elements. They can also indicate authentication issues and other processing errors. [Learn more](/healthcare/eligibility-troubleshooting#core-compliant-errors). | | `ErrorMessage` | A description of the error, if any. | | `Fault` | Only included when there is a [SOAP fault](/healthcare/eligibility-troubleshooting#soap-faults). It includes a `Code` and `Reason` element that describe the error. | {/* prettier-ignore-end */} ## HTTP status codes [#http-status-codes] Most errors return SOAP, but some return JSON containing the HTTP status code and a brief message describing the error. {/* prettier-ignore-start */} | Status Code | Response | Description | | ------------------ | -----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `200 OK` | SOAP | Indicates a successful request. Note that Stedi returns a `200` even when the payer returns [`AAA` errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors) in the 271 response. | | `400 Bad Request` | SOAP | Indicates a [SOAP fault](/healthcare/eligibility-troubleshooting#soap-faults), an error with the [SOAP request body](/healthcare/eligibility-troubleshooting#core-compliant-errors), or an [X12 EDI validation error](/healthcare/eligibility-troubleshooting#x12-edi-validation-errors). | | `401 Unauthorized` | SOAP | Indicates issues with the Stedi account ID or API key you provided. [Example](/healthcare/eligibility-troubleshooting#authentication-errors)| | `404 Not Found` | JSON | Indicates that the specified endpoint doesn't exist. Verify that you are using the correct URL for this endpoint: `https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core`. | | `429 Too Many Requests` | SOAP | Indicates that you have exceeded your [concurrency limit](/healthcare/api-reference#concurrency-limits) for this endpoint. The X12 response will contain an `AAA` error with code `42`. Stedi will continue rejecting additional requests with a `429` status code until one of your previous requests is completed. [Example](/healthcare/eligibility-troubleshooting#too-many-requests) | | `500 Internal Server Error` | JSON |Indicates an unexpected error on Stedi's side. If you encounter this error, please contact [Stedi Support](https://stedi.com/support) for assistance. | {/* prettier-ignore-end */} ## API Specification Submit real-time eligibility checks over SOAP using the CAQH CORE vC2.2.0 XML Schema **Endpoint:** `POST /protocols/caqh-core` **Base URL:** `https://healthcare.us.stedi.com/2025-06-01` ### Parameters - **`X-Forwarded-For`** (header): - Type: `string` ### Request Body ### Responses #### 200 200 response #### 400 Bad Request - The server could not process the request due to invalid syntax or missing required fields. #### 401 Unauthorized - Authentication failed. Verify the security credentials in the SOAP header. #### 404 Not Found - The requested resource could not be found. **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) (required) #### 429 Too Many Requests #### 500 Internal Server Error - An unexpected error occurred on the server. **Properties:** - **`message`** (`string`) (required) - **`code`** (`string`) (required) # Institutional Claims (837I) Raw X12 Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12 This endpoint is ideal if you have an existing system that generates X12 EDI files and you want to send them through Stedi. 1. Call this endpoint with a payload in [837 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-institutional-x223a2/01JBHW2YXMN2F9KXK2PS0BFP9F). 2. Stedi validates the EDI and sends the claim to the payer. 3. The endpoint returns a response from Stedi in JSON format containing information about the claim you submitted and whether the submission was successful. ## Claim identifier [#claim-identifier] `Loop 2300 REF02` (Claim Identifier for Transmission Intermediaries) has different usage rules depending on your role: - **Providers:** Don't include `Loop 2300 REF02` when `REF01` = `D9` in your claim submission. It's reserved for clearinghouses and intermediaries. You can use `Loop 2300 CLM01` (Patient Control Number) to correlate claims with responses instead. - **Clearinghouses and intermediaries:** You can optionally include `REF*D9` in your 837 submissions. Stedi always returns this value in `Loop 2200D REF*D9` of 277CA claim acknowledgments, allowing you to match these responses to the claim. ## API Specification Submit an 837I institutional claim in raw X12 EDI format **Endpoint:** `POST /change/medicalnetwork/institutionalclaims/v1/raw-x12-submission` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents you from sending duplicate claims due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `InstitutionalClaimsRawX12SubmissionRequestContent` **Properties:** - **`x12`** (`string`) (required) **Example:** ```json { "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2004*^*00501*000000035*0*T*>~GS*HC*574183004559*STEDITEST*20260213*200422*35*X*005010X223A2~ST*837*0001*005010X223A2~BHT*0019*00*01KHC9KCMYMA7YSW4K1ZM774ZA*20260213*2003*CH~NM1*41*2*Test Facility*****46*123456789~PER*IC**TE*2225551234~NM1*40*2*UnitedHealthcare*****46*87726~HL*1**20*1~NM1*85*2*Test Facility*****XX*1999999976~N3*123 Mulberry Street~N4*Seattle*WA*111135272~REF*EI*123456789~HL*2*1*22*0~SBR*P*18*******ZZ~NM1*IL*1*DOE*JANE****MI*98765~N3*1234 Some St~N4*Buckeye*AZ*85326~DMG*D8*19000101*F~NM1*PR*2*UnitedHealthcare*****PI*87726~CLM*55556666777888*500***11>A>0**C*Y*Y~DTP*434*RD8*20241015-20241015~DTP*435*DT*202409091000~CL1*3*9*30~HI*ABK>R45851~NM1*71*1*Provider*Doctor****XX*1999999976~LX*1~SV2*0800*HC>H0001*500*UN*1~DTP*472*RD8*20241015-20241015~REF*6R*111222333~SE*28*0001~GE*1*35~IEA*1*000000035~" } ``` ### Responses #### 200 InstitutionalClaimsRawX12Submission 200 response **Schema:** `InstitutionalClaimsRawX12SubmissionResponseContent` **Properties:** - **`claimReference`** (`object`): Information about the claim. - **`claimReference.claimType`** (`string`): The type of claim, always `INST`. - **`claimReference.correlationId`** (`string`): An identifier Stedi assigns to the claim. - **`claimReference.customerClaimNumber`** (`string`): A tracking number that Stedi assigns to the claim. - **`claimReference.formatVersion`** (`string`): The X12 EDI version Stedi used to generate the claim for the payer. This is always `5010`. - **`claimReference.patientControlNumber`** (`string`): The `patientControlNumber` from the original request, if supplied. This is a unique identifier that you assign to the claim so you can track the claim and correlate it with responses from the payer. - **`claimReference.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`claimReference.rhClaimNumber`** (`string`): A tracking number Stedi assigns to the claim. This is the same as the `correlationId`. - **`claimReference.serviceLines`** (`array of ServiceLineResponseIdentifier objects`): Contains a unique identifier for each service line, listed in the order the service lines were included in the claim. You can use these identifiers to correlate payer responses to specific service lines. - **`claimReference.serviceLines[].lineItemControlNumber`** (`string`): A unique identifier for the service line, matching the value provided for the `claimInformation.serviceLines[].providerControlNumber` property in the claim submission. If you didn't provide a value for `providerControlNumber`, this property contains a randomly generated ULID for the service line. - **`claimReference.submitterId`** (`string`): Stedi's ID for the entity that submitted the claim. - **`claimReference.timeOfResponse`** (`string`): A timestamp for Stedi's response to the claim submission. - **`controlNumber`** (`string`): An identifier for the transaction. - **`editResponses`** (`array of EditResponse objects`): Currently not used. - **`editResponses[].allowOverride`** (`string`) - **`editResponses[].badData`** (`string`) - **`editResponses[].claimCorePath`** (`string`) - **`editResponses[].editActivity`** (`string`) - **`editResponses[].editName`** (`string`) - **`editResponses[].element`** (`string`) - **`editResponses[].errorDescription`** (`string`) - **`editResponses[].fieldIndex`** (`string`) - **`editResponses[].loop`** (`string`) - **`editResponses[].phaseID`** (`string`) - **`editResponses[].qualifierCode`** (`string`) - **`editResponses[].referenceID`** (`string`) - **`editResponses[].segment`** (`string`) - **`editStatus`** (`string`): This shape is deprecated: Currently not used. - **`errors`** (`array of InstitutionalError objects`): Errors resulting from claim edits. You must review and fix these errors before resubmitting. - **`errors[].code`** (`string`): The error code. - **`errors[].description`** (`string`): The description of the error code. - **`errors[].followupAction`** (`string`): Recommended followup actions to correct the error. - **`errors[].location`** (`string`): Where the error is located in the original request. - **`errors[].value`** (`string`): The value for the data causing the error. - **`failure`** (`object`): Currently not used. - **`failure.code`** (`string`) - **`failure.description`** (`string`) - **`httpStatusCode`** (`string`): Stedi can return the following status codes: - `200`: Stedi successfully generated the X12 EDI claim format required by the payer. It does not indicate whether the payer has accepted the claim - the payer will respond later with a 277CA containing this information. [Learn more about 277CAs](https://www.stedi.com/docs/healthcare/receive-claim-responses#response-types). - `400`: The request contains one or more problems with the claim data. Examples include missing required fields, invalid values, or incorrect data types. The response includes a message describing the problem. - `403`: The request is not permitted, such as using a test API key to submit a production transaction. - Allowed values: `200 OK`, `400 BAD_REQUEST`, `403 FORBIDDEN` - **`meta`** (`object`): Metadata from Stedi about the request. - **`meta.applicationMode`** (`string`): Indicates where this request can be found for support. - **`meta.billerId`** (`string`): The biller ID assigned to this request. - **`meta.senderId`** (`string`): The sender ID assigned to this request. - **`meta.submitterId`** (`string`): The submitter ID assigned to this request. - **`meta.traceId`** (`string`): The file execution ID, a unique identifier assigned to the processed file within the Stedi platform. - **`payer`** (`object`): Information about the payer for the submitted claim. - **`payer.payerID`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`payer.payerName`** (`string`): The payer's business name, such as Aetna or Cigna. - **`status`** (`string`): The status of the claim submission. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original claim. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`warnings`** (`array of ClaimsWarning objects`): A list of warnings. Currently not used. - **`warnings[].code`** (`string`): A machine-readable code indicating the type of problem. - **`warnings[].description`** (`string`): A human-readable description of the problem. - **`x12`** (`string`): A [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/claim-responses-overview#277ca-claim-acknowledgment) acceptance or rejection from Stedi in X12 EDI format. It indicates whether the claim has passed Stedi's claim edits. When the claim fails one or more edits, the 277CA contains `STC` segments with information about each error. These are the same error codes that appear in the `errors` array. Note that this 277CA only indicates whether Stedi has accepted or rejected the claim submission. You may receive additional 277CA acceptances or rejections as the claim is routed to the payer. **Example:** ```json { "claimReference": { "correlationId": "01J1M588QT2TAV2N093GNJ998T", "formatVersion": "5010", "patientControlNumber": "26403774", "payerId": "AETNA", "rhClaimNumber": "01J1M588QT2TAV2N093GNJ998T", "serviceLines": [ { "lineItemControlNumber": "1" } ], "timeOfResponse": "2024-07-10T22:05:32.203Z" }, "controlNumber": "000000001", "httpStatusCode": "200 OK", "meta": { "traceId": "b727b8e7-1f00-4011-bc6e-e41444d406d8" }, "payer": { "payerID": "AETNA", "payerName": "Aetna" }, "status": "SUCCESS", "tradingPartnerServiceId": "AETNA", "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*2001*^*00501*929135779*0*T*>~GS*HN*STEDITEST*574183004559*20260213*200134*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC9GC66KDRVHEJC42Q103EQ*20260213*200134*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC9GC66KDRVHEJC42Q103EQ~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Facility*****46*123456789~TRN*2*01KHC9G8FMGZ6CA9TQT704RAMB~STC*A0>17>AY*20260213*WQ*500.0~QTY*90*1~AMT*YU*500.0~HL*3*2*19*1~NM1*85*2*Test Facility*****XX*1999999976~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*500.0~HL*4*3*PT*0~NM1*QC*1*DOE*JANE****MI*98765~TRN*2*12345~STC*A1>20*20260213*WQ*500.0~DTP*472*RD8*20241015-20241015~SE*25*0001~GE*1*1~IEA*1*929135779~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 422 RequestChangedException 422 response **Schema:** `RequestChangedExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of error. - **`message`** (`string`) (required): Human readable error message explaining why the request was rejected. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Institutional Claims (837I) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-institutional-claims This endpoint sends 837I institutional claims to payers. 1. Call this endpoint with a JSON payload. 2. Stedi translates your request to the X12 837 EDI format and sends it to the payer. 3. The endpoint returns a response from Stedi in JSON format containing information about the claim you submitted and whether the submission was successful. ## API Specification Submit an 837I institutional claim in JSON format **Endpoint:** `POST /change/medicalnetwork/institutionalclaims/v1/submission` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Parameters - **`Idempotency-Key`** (header): A unique string to identify this request to the server. The key can be up to 255 characters. You can safely retry requests with the same idempotency key within 24 hours of making the first request. This prevents you from sending duplicate claims due to network errors or other intermittent failures. [Learn more](https://www.stedi.com/docs/api-reference/index#idempotency-keys). - Type: `string` ### Request Body **Schema:** `InstitutionalClaimsSubmissionRequestContent` **Properties:** - **`attending`** (`object`): Information about the individual who has overall responsibility for the patient's medical care and treatment reported in the claim. This information is required when the claim contains any services other than non-scheduled transportation claims. This provider should be an individual, not an organization, and you should supply at least the provider's `lastName` and an identifier, which is typically the `npi`. - **`attending.address`** (`object`) - **`attending.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`attending.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`attending.address.city`** (`string`) (required): The city name. - **`attending.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`attending.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`attending.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`attending.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`attending.contactInformation`** (`object`) - **`attending.contactInformation.email`** (`string`): The email address. - **`attending.contactInformation.faxNumber`** (`string`): The fax number. - **`attending.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`attending.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`attending.contactInformation.validContact`** (`boolean`) - **`attending.employerId`** (`string`) - **`attending.firstName`** (`string`): The provider's first name. - **`attending.lastName`** (`string`): The provider's last name. This is **required**. - **`attending.middleName`** (`string`): The provider's middle name or initial. - **`attending.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`attending.organizationName`** (`string`): The provider's business name. - **`attending.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`attending.secondaryIdentificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`attending.secondaryIdentifier`** (`string`): The identifier referenced by `secondaryIdentificationQualifierCode`. For example, if `secondaryIdentificationQualifierCode` is set to `0B`, this property should be the provider's state license number. You can only include one secondary identifier for the provider. - **`attending.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`attending.taxonomyCode`** (`string`): The provider's [taxnonomy code](https://www.cms.gov/medicare/enrollment-renewal/providers-suppliers/health-care-taxonomy), a unique 10-character code that designates their classification and specialization. Only applies to the attending provider. - **`billing`** (`object`): Information about the billing provider. The following information is required: - An `address` that is a physical location such as the office where care is delivered or an administrative facility. - The provider's Employer Identification Number (EIN) in `employerId`. - The provider's business name in `organizationName`. - The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) in `npi`, if one is assigned. When the billing provider is not assigned an NPI, supply `secondaryIdentifier` with `secondaryIdentificationQualifierCode` set to `G2` (commercial number). - **`billing.address`** (`object`) (required) - **`billing.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billing.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billing.address.city`** (`string`) (required): The city name. - **`billing.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`billing.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`billing.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`billing.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`billing.commercialNumber`** (`string`) - **`billing.contactInformation`** (`object`) - **`billing.contactInformation.email`** (`string`): The email address. - **`billing.contactInformation.faxNumber`** (`string`): The fax number. - **`billing.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`billing.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`billing.contactInformation.validContact`** (`boolean`) - **`billing.employerId`** (`string`) (required): The provider's employer ID, also known as an EIN or TIN. Must be a string of exactly nine numbers with no separators. - **`billing.firstName`** (`string`): The provider's first name. - **`billing.lastName`** (`string`): The provider's last name. - **`billing.locationNumber`** (`string`) - **`billing.middleName`** (`string`): The provider's middle name or initial. - **`billing.npi`** (`string`): The organization [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). Optional. When the billing provider is not assigned an NPI, supply `secondaryIdentifier` with `secondaryIdentificationQualifierCode` set to `G2` instead. - **`billing.organizationName`** (`string`): The provider's business name. - **`billing.providerType`** (`string`): Defines the billing provider type. - Allowed values: `BillingProvider` - **`billing.providerUpinNumber`** (`string`) - **`billing.secondaryIdentificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`billing.secondaryIdentifier`** (`string`): The identifier specified in `secondaryIdentifierQualifierCode`. You can only include one secondary identifier for the provider. - **`billing.stateLicenseNumber`** (`string`) - **`billing.suffix`** (`string`): The provider's suffix, such as Jr. or Sr. - **`billing.taxonomyCode`** (`string`): The provider's [taxnonomy code](https://www.cms.gov/medicare/enrollment-renewal/providers-suppliers/health-care-taxonomy), a unique 10-character code that designates their classification and specialization. - **`billingPayToAddressName`** (`object`): Use to specify an address for payment that is different from the billing provider's physical address. This is relevant when the provider expects to receive paper checks at a different location, such as a PO Box, lockbox, or other mailing address. - **`billingPayToAddressName.address`** (`object`) (required) - **`billingPayToAddressName.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billingPayToAddressName.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billingPayToAddressName.address.city`** (`string`) (required): The city name. - **`billingPayToAddressName.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`billingPayToAddressName.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`billingPayToAddressName.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`billingPayToAddressName.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`billingPayToAddressName.entityTypeQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `2` - Non-Person Entity. - Allowed values: `2` - **`billingPayToPlanName`** (`object`): Use for subrogation payment requests. If you include this information, you must also set the `claimInformation.otherSubscriberInformation.payerPaidAmount` to the amount the payer (for example, Medicaid) actually paid. - **`billingPayToPlanName.address`** (`object`) - **`billingPayToPlanName.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billingPayToPlanName.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billingPayToPlanName.address.city`** (`string`) (required): The city name. - **`billingPayToPlanName.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`billingPayToPlanName.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`billingPayToPlanName.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`billingPayToPlanName.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`billingPayToPlanName.claimOfficeNumber`** (`string`): The Claim Office Number. - **`billingPayToPlanName.identificationCode`** (`string`) (required): The identification code specified by the `identificationCodeQualifier`. - **`billingPayToPlanName.identificationCodeQualifier`** (`string`) (required): The type of identification code used to identify the organization. Can be set to `PI` - Payer Identification or `XV` - Centers for Medicare and Medicaid Services PlanID. `XV` is deprecated. - Allowed values: `PI`, `XV` - **`billingPayToPlanName.naic`** (`string`): The National Association of Insurance Commisioners (NAIC) code. This is the five-digit identifier assigned to each insurance company. - **`billingPayToPlanName.organizationName`** (`string`) (required): The business name of the organization to which the payment should be made. - **`billingPayToPlanName.payerIdentificationNumber`** (`string`): The payer identification number. Only include this information when the `identificationCodeQualifier` is set to `XV` - Centers for Medicare and Medicaid Services PlanID. - **`billingPayToPlanName.taxId`** (`string`) (required): The payer tax identification number (TIN). This is a unique number assigned to the payer by the IRS. - **`claimIdentifier`** (`string`): A code specifying the type of transaction. Defaults to `CH` if not provided. - `31`: Only for use by state Medicaid agencies performing post payment recovery. - `CH`: Use when the transaction contains only fee for service claims or claims with at least one chargeable line item. Also use when it's not clear whether a transaction contains claims or capitated encounters, or if the transaction contains a mix of claims and capitated encounters. - `RP`: Use for capitated encounters. Also use when the transaction is being sent to an entity for purposes other than adjudication of a claim. For example, when you're sending the claim to a state health agency that is using the claim for health data reporting purposes. - Allowed values: `31`, `CH`, `RP` - **`claimInformation`** (`object`) (required): Information about the healthcare claim. Note that the objects and properties marked as required are required for all claims, while others are conditionally required, depending on type of claim and claim circumstances. For example, you must always provide the `claimChargeAmount`, but you only need to provide the `otherSubscriberInformation` object in coordination of benefits scenarios. When you include a conditionally required object, you must provide all of its required properties. - **`claimInformation.admittingDiagnosis`** (`object`) - **`claimInformation.admittingDiagnosis.admittingDiagnosisCode`** (`string`) (required): The admitting diagnosis code for the patient. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - **Don't** submit the decimal point for ICD codes. The decimal point is implied. - **Don't** submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the [Value Set Authority Center](https://vsac.nlm.nih.gov/context/cs). If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`claimInformation.admittingDiagnosis.qualifierCode`** (`string`) (required): Code identifying the type of admitting diagnosis code used. Can be set to `ABJ` - International Classification of Diseases Clinical Modification (ICD-10-CM) Admitting Diagnosis or `BJ` - International Classification of Diseases Clinical Modification (ICD-9-CM) Admitting Diagnosis. Note that ICD-9 is deprecated and cannot be used in new claims. - Allowed values: `ABJ`, `BJ` - **`claimInformation.benefitsAssignmentCertificationIndicator`** (`string`) (required) - Allowed values: `N`, `W`, `Y` - **`claimInformation.billingNote`** (`string`): To communicate special instructions regarding claim billing. Required when the provider judges the information is needed to substantiate the medical treatment and cannot be provided elsewhere in the request. - **`claimInformation.claimChargeAmount`** (`string`) (required): The total dollar amount charged for the services on this claim, expressed as a decimal. For example, `100.50`. This is the total amount before any adjustments or payments. The amount must balance to the sum of the service line charges. - **`claimInformation.claimCodeInformation`** (`object`) (required): Supply information specific to hospital claims, such as the priority of the admission. - **`claimInformation.claimCodeInformation.admissionSourceCode`** (`string`): Code indicating the source of the admission, such as the emergency room (ER), a doctor’s referral, or another facility. This code is **required** for all institutional claims except when the `claimInformation.placeOfServiceCode` is set to `14` (Non-Patient Laboratory). Stedi rejects claims that don't meet this requirement [Full code list](https://med.noridianmedicare.com/web/jea/topics/claim-submission/point-of-origin-codes). - **`claimInformation.claimCodeInformation.admissionTypeCode`** (`string`) (required): The code indicating the priority of the admission. - **`claimInformation.claimCodeInformation.patientStatusCode`** (`string`) (required): Code indicating patient status as of the end of the claim's billed period. It tells the payer whether the patient was discharged, transferred, or still admitted. This code must be compatible with the `claimInformation.claimFrequencyCode`. For example, claim frequency code `1` (Admit thru Discharge Claim) means the patient's stay is finished. In this case, the patient status code shouldn't be `30` (Still a Patient), which indicates the patient is still in the facility. [Full code list](https://med.noridianmedicare.com/web/jea/topics/claim-submission/patient-discharge-status-codes) - **`claimInformation.claimContractInformation`** (`object`): Required when the submitter is contractually obligated to supply this information on post-adjudicated claims. - **`claimInformation.claimContractInformation.contractAmount`** (`string`): The total dollar amount of the contract, expressed as a decimal. For example, `100.50`. - **`claimInformation.claimContractInformation.contractCode`** (`string`): The contract code. This is a unique identifier for the contract. - **`claimInformation.claimContractInformation.contractPercentage`** (`string`): The allowance or charge percent, expressed as a decimal. For example, `0.80`. - **`claimInformation.claimContractInformation.contractTypeCode`** (`string`) (required): A code identifying the type of contract. Can be set to `01` - Diagnosis Related Group (DRG), `02` - Per Diem, `03` - Variable Per Diem, `04` - Flat, `05` - Capitated, `06` - Percent, or `09` - Other. - Allowed values: `01`, `02`, `03`, `04`, `05`, `06`, `09` - **`claimInformation.claimContractInformation.contractVersionIdentifier`** (`string`): An additional identifer for the contract. Identifies the revision level of a particular format, program, technique or algorithm. - **`claimInformation.claimContractInformation.termsDiscountPercentage`** (`string`): Terms discount percentage, expressed as a percent, available to the purchaser if an invoice is paid on or before the Terms Discount Due Date. - **`claimInformation.claimDateInformation`** (`object`) (required): Dates and times related to the claim. For example, when the patient was discharged from the hospital. - **`claimInformation.claimDateInformation.admissionDateAndHour`** (`string`): When the patient was admitted to the hospital or facility. This property is **required** on inpatient claims. Can be expressed as a date and time (YYYYMMDDHHMM) or a single date (YYYYMMDD). - **`claimInformation.claimDateInformation.dischargeHour`** (`string`): The time the patient was discharged from the hospital or facility. This property is **required** on final inpatient claims. Can be expressed as a time in format HHMM. - **`claimInformation.claimDateInformation.repricerReceivedDate`** (`string`): The date the repricer received the claim, formatted as `YYYYMMDD`. Required when a repricer is passing the claim onto the payer. - **`claimInformation.claimDateInformation.statementBeginDate`** (`string`) (required): The beginning date of the statement, formatted as `YYYYMMDD`. - **`claimInformation.claimDateInformation.statementEndDate`** (`string`) (required): The ending date of the statement, formatted as `YYYYMMDD`. - **`claimInformation.claimFilingCode`** (`string`) (required): A code identifying the type of claim. For example `DS` - Disability. - Use `OF` when submitting Medicare Part D claims. - Use `ZZ` when you don't know the type of insurance. - Some payers reject claims with invalid codes. If you're not sure which code to use, we recommend running a [real-time eligibility check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) and using the value returned in the most relevant `benefitsInformation.insuranceTypeCode` property. Note that the eligibility response uses a different code list than claims, so you may need to map that code value to the appropriate claim filing code. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-filing-indicator-codes) for a complete list. - Allowed values: `11`, `12`, `13`, `14`, `15`, `16`, `17`, `AM`, `BL`, `CH`, `CI`, `DS`, `FI`, `HM`, `LM`, `MA`, `MB`, `MC`, `OF`, `TV`, `VA`, `WC`, `ZZ` - **`claimInformation.claimFrequencyCode`** (`string`) (required): Code specifying the frequency of the claim. Not all payers allow all codes. Can be set to `1` - Admit thru Discharge Claim, `2` - Interim – First Claim, `3` - Interim – Continuing Claim, `4` - Interim – Last Claim, `7` - Replacement, `8` - Void, and `9` - Final Claim for a Home Health PPS Episode. - The claim frequency code and patient status code (`claimInformation.claimCodeInformation.patientStatusCode`) must be compatible. For example, claim frequency code `1` (Admit thru Discharge Claim) means the patient’s stay is finished. In this case, the patient status code shouldn't be `30` (Still a Patient), which indicates the patient is still in the facility. - Set this to `7` when you need to resubmit a corrected claim that the payer has already processed. These are claims that the payer has already adjudicated or claims that the payer has rejected with a 277CA containing the Payer Claim Control Number (PCCN), indicating it has entered the payer's system. Note that Original Medicare doesn't accept code `7` for resubmissions, so you'll need to resubmit with the same code as the original claim. - When resubmitting with code `7` or voiding with code `8`, you must also include the Payer Claim Control Number (sometimes called the ICN) in the `claimInformation.claimSupplementalInformation.claimControlNumber` property. An exception is Original Medicare, which requires that you omit the Payer Claim Control Number from resubmissions. - For resubmissions and cancellations, we strongly recommend including a unique Patient Control Number in the `claimInformation.patientControlNumber` for tracking purposes. Visit [Resubmit or cancel claims](https://www.stedi.com/docs/healthcare/resubmit-cancel-claims) for complete details. - **`claimInformation.claimNotes`** (`object`): Free-form information to substantiate the medical treatment that isn't provided elsewhere in the claim submission. Also used to provide narrative information from the forms Home Health Certification and Plan of Treatment or Medical Update and Patient Information, as needed to substantiate home health services. You can provide up to 10 strings in this array. - **`claimInformation.claimNotes.additionalInformation`** (`array of strings`) - **`claimInformation.claimNotes.allergies`** (`array of strings`): Allergies - **`claimInformation.claimNotes.diagnosisDescription`** (`array of strings`): Diagnosis Description - **`claimInformation.claimNotes.dme`** (`array of strings`): Durable Medical Equipment (DME) and Supplies - **`claimInformation.claimNotes.functionalLimitsOrReasonHomebound`** (`array of strings`): Functional Limitations, Reason Homebound, or Both - **`claimInformation.claimNotes.goalRehabOrDischargePlans`** (`array of strings`): Goals, Rehabilitation Potential, or Discharge Plans - **`claimInformation.claimNotes.medications`** (`array of strings`): Medications - **`claimInformation.claimNotes.nutritionalRequirments`** (`array of strings`): Nutritional Requirements - **`claimInformation.claimNotes.ordersForDiscipLinesAndTreatments`** (`array of strings`): Orders for Disciplines and Treatments - **`claimInformation.claimNotes.reasonsPatientLeavesHome`** (`array of strings`): Reasons Patient Leaves Home - **`claimInformation.claimNotes.safetyMeasures`** (`array of strings`): Safety Measures - **`claimInformation.claimNotes.supplementalPlanOfTreatment`** (`array of strings`): Supplementary Plan of Treatment - **`claimInformation.claimNotes.timesAndReasonsPatientNotAtHome`** (`array of strings`): Times and Reasons Patient Not at Home - **`claimInformation.claimNotes.unusualHomeOrSocialEnv`** (`array of strings`): Unusual Home, Social Environment, or Both - **`claimInformation.claimNotes.updatedInformation`** (`array of strings`): Updated Information - **`claimInformation.claimPricingInformation`** (`object`) - **`claimInformation.claimPricingInformation.exceptionCode`** (`string`): Code specifying the exception reason for consideration of out-of-network health care services. Can be set to `1` - Non-Network Professional Provider in Network Hospital, `2` - Emergency Care, `3` - Services or Specialist not in Network, `4` - Out-of-Service Area, `5` - State Mandates, or `6` - Other. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6` - **`claimInformation.claimPricingInformation.policyComplianceCode`** (`string`) - Allowed values: `1`, `2`, `3`, `4`, `5` - **`claimInformation.claimPricingInformation.pricingMethodologyCode`** (`string`) (required): Code indicating the pricing or repricing methodology. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#pricing-methodology-codes-2) for a complete list. - Allowed values: `00`, `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14` - **`claimInformation.claimPricingInformation.productOrServiceIDQualifier`** (`string`): Code identifying the type of product or service ID used. Can be set to `ER` - Jurisdiction Specific Procedure and Supply Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `HP` - Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, or `WK` - Advanced Billing Concepts (ABC) Codes. Note that ABC codes are deprecated and should not be used in new claims. If you provide this property, you must also provide `repricedApprovedHCPCSCode` Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier-codes) for a complete list and additional usage notes. - Allowed values: `ER`, `HC`, `HP`, `IV`, `WK` - **`claimInformation.claimPricingInformation.rejectReasonCode`** (`string`) - Allowed values: `T1`, `T2`, `T3`, `T4`, `T5`, `T6` - **`claimInformation.claimPricingInformation.repricedAllowedAmount`** (`string`) (required): The allowed amount, expressed as a decimal. - **`claimInformation.claimPricingInformation.repricedApprovedAmount`** (`string`): The approved DRG amount, expressed as a decimal. - **`claimInformation.claimPricingInformation.repricedApprovedDRGCode`** (`string`): The approved DRG code. - **`claimInformation.claimPricingInformation.repricedApprovedHCPCSCode`** (`string`): The approved procedure code. If you provide this property, you must also include `productOrServiceIDQualifier`. - **`claimInformation.claimPricingInformation.repricedApprovedRevenueCode`** (`string`): The approved revenue code. - **`claimInformation.claimPricingInformation.repricedApprovedServiceUnitCode`** (`string`): The approved service units or inpatient days. Can be set to `DA` - Days or `UN` - Unit. - Allowed values: `DA`, `UN` - **`claimInformation.claimPricingInformation.repricedApprovedServiceUnitCount`** (`string`): The approved service units or inpatient days. The maximum length for this field is 8 digits excluding the decimal. When a decimal is used, the maximum number of digits allowed to the right of the decimal is three. - **`claimInformation.claimPricingInformation.repricedOrgIdentifier`** (`string`): The organization identification number. - **`claimInformation.claimPricingInformation.repricedPerDiem`** (`string`): The pricing rate associated with per diem or flat rate pricing, expressed as a decimal. - **`claimInformation.claimPricingInformation.repricedSavingAmount`** (`string`): The savings amount, expressed as a decimal. - **`claimInformation.claimSupplementalInformation`** (`object`): Additional information or documentation required for the claim. This is where you can include information about [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments), if applicable. - **`claimInformation.claimSupplementalInformation.adjustedRepricedClaimRefNumber`** (`string`): The adjusted repriced claim reference number. Required when the repricer believes this information is necessary. Providers should not complete this property. - **`claimInformation.claimSupplementalInformation.autoAccidentState`** (`string`): Required when the services reported on this claim are related to an auto accident and the accident occurred in a country or location that has a state, province, or sub-country code. - **`claimInformation.claimSupplementalInformation.claimControlNumber`** (`string`): This is the Payer Claim Control Number (PCCN) for an existing claim that this claim is meant to replace or cancel. This property is generally **required** when the `claimInformation.claimFrequencyCode` is set to `7` or `8`. One exception to this guidance is Original Medicare, which specifies that you omit the PCCN from resubmissions. Visit [Resubmit or cancel claims](https://www.stedi.com/docs/healthcare/resubmit-cancel-claims) for complete details and information about where to find the PCCN for an existing claim. - **`claimInformation.claimSupplementalInformation.claimNumber`** (`string`): The identifier assigned by clearinghouse, van, etc. when they need to assign their own unique claim number. Stedi overwrites this value when it sends the claim to the payer, so you shouldn't include this property in your request. We strongly recommend using the `claimInformation.patientControlNumber` property as your claim tracking ID. - **`claimInformation.claimSupplementalInformation.demoProjectIdentifier`** (`string`): Required when it is necessary to identify claims that are atypical in ways such as content, purpose, and/or payment. For example, claims made as the result of a demonstration or a clinical trial. - **`claimInformation.claimSupplementalInformation.investigationalDeviceExemptionNumber`** (`string`): Required when claim involves a Food and Drug Administration (FDA) assigned investigational device exemption (IDE) number. When more than one IDE applies, you must split into separate claims. - **`claimInformation.claimSupplementalInformation.medicalRecordNumber`** (`string`): Required when the provider needs to identify the actual medical record of the patient for this episode of care. - **`claimInformation.claimSupplementalInformation.peerReviewAuthorizationNumber`** (`string`): Required when an external Peer Review Organization assigns an Approval Number to services deemed medically necessary by that organization. - **`claimInformation.claimSupplementalInformation.priorAuthorizationNumber`** (`string`): Required when an authorization number is assigned by the payer or UMO _and_ the services on this claim were preauthorized. The UMO (Utilization Management Organization) is generally the entity empowered to decide the outcome of a health services review or the owner of the information. You can only send one prior authorization (preauthorization) number per claim. If different numbers apply to specific service lines, you must split those service lines into separate claims. - **`claimInformation.claimSupplementalInformation.referralNumber`** (`string`): Required when a referral number is assigned by the payer or Utilization Management Organization (UMO) and a referral is involved. This value applies to the entire claim unless overridden within a specific service line. - **`claimInformation.claimSupplementalInformation.reportInformation`** (`object`) - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.claimSupplementalInformation.reportInformation.attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.claimSupplementalInformation.reportInformations`** (`array of InstitutionalReportInformation objects`): An array of report information for the claim. Use this when you need to submit multiple report information records. You can submit up to 10 objects in this array. Required when you plan to submit [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for the claim electronically through Stedi APIs or SFTP, when there is a paper attachment following this claim, or when the provider deems it necessary to identify that they have additional information at their office that is available upon request. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.claimSupplementalInformation.reportInformations[].attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.claimSupplementalInformation.repricedClaimNumber`** (`string`): Required when the repricer believes this information is necessary. Providers should not complete this property. - **`claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode`** (`string`): Code indicating the type of service authorization exception. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#service-authorization-exception-codes) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7` - **`claimInformation.conditionCodes`** (`array of strings`): Indicates the condition of the patient for EPSDT referral situations. Can be set to `AV` - Available-Not Used, `NU` - Not Used, `S2` - Under Treatment, `ST` - New Services Requested. - Use `AV` when the patient refused a referral. - Use `S2` when the patient is currently under treatment for the referred diagnostic or corrective health problem. - Use `ST` when the patient is referred to another provider for diagnostic or corrective treatment for at least one health problem identified during an initial or periodic screening service (not including dental referrals) OR the patient is scheduled for another appointment with the screening provider for diagnostic or corrective treatment for at least one health problem identified during an initial or periodic screening service (not including dental referrals). - **`claimInformation.conditionCodesList`** (`array of arrays`): Required when there is a Condition Code that applies to this claim. This is an array of arrays of objects. You can provide up to two object arrays, and each array can contain up to 12 objects. - **`claimInformation.delayReasonCode`** (`string`): Code indicating the reason for the delay in claim submission. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#delay-reason-codes) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `15` - **`claimInformation.diagnosisRelatedGroupInformation`** (`object`) - **`claimInformation.diagnosisRelatedGroupInformation.drugRelatedGroupCode`** (`string`) (required): The diagnosis related group code. - **`claimInformation.epsdtReferral`** (`object`): Required on Early & Periodic Screening, Diagnosis, and Treatment (EPSDT) claims when the screening service is being billed in this claim. - **`claimInformation.epsdtReferral.certificationConditionCodeAppliesIndicator`** (`string`) (required): Code indicating whether an EPSDT referral was given to the patient. Can be set to `N` - No or `Y` - Yes. - Allowed values: `N`, `Y` - **`claimInformation.epsdtReferral.conditionCodes`** (`array of strings`) (required): Code indicating the patient's status. Set to `AV` when the patient refused the referral. Set to `NU` when you set `certificationConditionCodeAppliesIndicator` to `N`. Set to `S2` when the patient is currently under treatment for the referred diagnostic or corrective health problem. Set to `ST` when _either_ the patient is referred to another provider for diagnostic or corrective treatment for at least one health problem identified during an initial or periodic screening service (not including dental referrals) _or_ the patient is scheduled for another appointment with the screening provider for diagnostic or corrective treatment for at least one health problem identified during an initial or periodic screening service (not including dental referrals). - **`claimInformation.externalCauseOfInjuries`** (`array of ExternalCauseOfInjury objects`): Diagnosis codes to describe the patient's condition. Required when an external Cause of Injury is needed to describe an injury, poisoning, or adverse effect. Note that to fully describe an injury using ICD-10-CM, it will be necessary to report a series of 3 external cause of injury codes. Refer to the [ICD-10-CM Official Guidelines for Coding and Reporting](https://stacks.cdc.gov/view/cdc/158747). You can provide up to 12 objects in this array. - **`claimInformation.externalCauseOfInjuries[].externalCauseOfInjury`** (`string`) (required): The external cause of injury code(s) for the patient. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - **Don't** submit the decimal point for ICD codes. The decimal point is implied. - **Don't** submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the [Value Set Authority Center](https://vsac.nlm.nih.gov/context/cs). If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`claimInformation.externalCauseOfInjuries[].presentOnAdmissionIndicator`** (`string`): Indicates whether the external cause of injury was present on admission. Can be set to `N` - No (onset did NOT occur prior to admission to the hospital), `Y` - Yes (onset occurred prior to admission to the hospital), `U` - Unknown, or `W` - Not Applicable. - Allowed values: `N`, `U`, `Y`, `W` - **`claimInformation.externalCauseOfInjuries[].qualifierCode`** (`string`) (required): Code identifying the type of external cause of injury code used. Can be set to `ABN` - International Classification of Diseases Clinical Modification External Cause of Injury Code or `BN` - International Classification of Diseases Clinical Modification External Cause of Injury Code. Note that ICD-9 is deprecated and cannot be used in new claims. - Allowed values: `ABN`, `BN` - **`claimInformation.fileInformation`** (`array of strings`): Used to send additional data specifically requested by the payer. Not commonly used. - **`claimInformation.occurrenceInformationList`** (`array of arrays`): Required when there is a Occurrence Code that applies to this claim. This is an array of arrays of objects. You can provide up to two object arrays, and each array can contain up to 12 objects. - **`claimInformation.occurrenceSpanInformations`** (`array of arrays`): Required when there is an Occurrence Span Code that applies to this claim. This is an array or arrays of objects. You can provide up to two object arrays and each array can contain up to 12 objects. - **`claimInformation.otherDiagnosisInformationList`** (`array of arrays`): Additional diagnosis codes relevant to the claim. Required when other condition(s) coexist or develop(s) subsequently during the patient's treatment. This is an array of arrays of objects. You can provide up to two object arrays, and each object array can contain up to 12 objects. - **`claimInformation.otherProcedureInformationList`** (`array of arrays`): Required on inpatient claims when additional procedures must be reported. This is an array of arrays of objects. You can provide up to two object arrays, and each array can contain up to 12 objects. - **`claimInformation.otherSubscriberInformation`** (`object`): Required when other payers are known to potentially be involved in paying on this claim. This object contains information about other health plans under which the patient has coverage. It's used for coordination of benefits scenarios. - **`claimInformation.otherSubscriberInformation.benefitsAssignmentCertificationIndicator`** (`string`) (required) - Allowed values: `N`, `Y`, `W` - **`claimInformation.otherSubscriberInformation.claimFilingIndicatorCode`** (`string`) (required) - Allowed values: `11`, `12`, `13`, `14`, `15`, `16`, `17`, `AM`, `BL`, `CH`, `DS`, `FI`, `HM`, `LM`, `MA`, `MB`, `MC`, `OF`, `TV`, `VA`, `WC`, `ZZ` - **`claimInformation.otherSubscriberInformation.claimLevelAdjustments`** (`array of InstitutionalClaimAdjustment objects`): Supply adjustment reason codes and amounts as needed. Required when the claim has been adjudicated by the payer identified in this loop, and the claim has claim level adjustment information. Submitters must use this object to report prior payers' claim level adjustments that cause the amount paid to differ from the amount originally charged. Codes and associated amounts must come from either paper remittance advice or 835s (Electronic Remittance Advice) received on the claim. When the information originates from a paper remittance advice that does not use the standard Claim Adjustment Reason Codes, the paper values must be converted to standard Claim Adjustment Reason Codes. You can include up to five `claimLevelAdjustments` objects in this array. - **`claimInformation.otherSubscriberInformation.claimLevelAdjustments[].adjustmentGroupCode`** (`string`) (required): Code identifying the general category of payment adjustment. Can be set to `CO` - Contractual Obligations, `CR` - Correction and Reversals, `OA` - Other adjustments, `PI` - Payor Initiated Reductions, or `PR` - Patient Responsibility. - Allowed values: `CO`, `CR`, `OA`, `PI`, `PR` - **`claimInformation.otherSubscriberInformation.claimLevelAdjustments[].claimAdjustmentDetails`** (`array of InstitutionalClaimAdjustmentDetails objects`): The adjustment reason, amount, and quantity. You can include up to six of these objects to describe a single `adjustmentGroupCode`. - **`claimInformation.otherSubscriberInformation.claimLevelAdjustments[].claimAdjustmentDetails[].adjustmentAmount`** (`string`) (required): The dollar amount of the adjustment, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.claimLevelAdjustments[].claimAdjustmentDetails[].adjustmentQuantity`** (`string`): The units of service being adjusted, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.claimLevelAdjustments[].claimAdjustmentDetails[].adjustmentReasonCode`** (`string`) (required): Code identifying the detailed reason the adjustment was made. Visit the X12 [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) for a complete list. - **`claimInformation.otherSubscriberInformation.groupNumber`** (`string`): The group number for the subscriber's health plan. Provide this property OR the `otherInsuredGroupName`, not both. If this property is set, Stedi ignores the `otherInsuredGroupName` property. - **`claimInformation.otherSubscriberInformation.individualRelationshipCode`** (`string`) (required) - Allowed values: `01`, `18`, `19`, `20`, `21`, `39`, `40`, `53`, `G8` - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication`** (`object`) - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.capitalExceptionAmount`** (`string`): The capital exception amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.capitalHSPDRGAmount`** (`string`): The Prospective Payment System (PPS) capital, hospital specific portion, Diagnosis Related Group (DRG) amount. Expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.claimDRGAmount`** (`string`): The Diagnosis Related Group (DRG) amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.claimDisproportionateShareAmount`** (`string`): The disproportionate share amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.claimIndirectTeachingAmount`** (`string`): The indirect teaching amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.claimMspPassThroughAmount`** (`string`): The Medicare Secondary Payer (MSP) pass-through amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.claimPaymentRemarkCode`** (`array of strings`): The claim payment remark code. Refer to the X12 [Remittance Advice Remark Codes](https://x12.org/codes/remittance-advice-remark-codes) for a complete list. You can include up to four codes in this array. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.claimPpsCapitalAmount`** (`string`): The Prospective Payment System (PPS) capital amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.claimPpsCapitalOutlierAmmount`** (`string`): The Prospective Payment System (PPS) capital outlier amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.costReportDayCount`** (`string`): The number of cost report days, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.coveredDaysOrVisitsCount`** (`string`) (required): The number of covered days, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.lifetimePsychiatricDaysCount`** (`string`): The number of lifetime psychiatric days, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.nonPayableProfessionalComponentBilledAmount`** (`string`): The professional component amount billed but not payable, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.oldCapitalAmount`** (`string`): The old capital amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.ppsCapitalDshDrgAmount`** (`string`): The prospective Payment System (PPS) capital, disproportionate share, hospital Diagnosis Related Group (DRG) amount. Expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.ppsCapitalHspDrgAmount`** (`string`): The Prospective Payment System (PPS) capital, disproportionate share, hospital Diagnosis Related Group (DRG) amount. Expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.ppsCapitalImeAmount`** (`string`): The Prospective Payment System (PPS) capital Indirect Medical Education (IME) claim amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.ppsOperatingFederalSpecificDrgAmount`** (`string`): The federal specific Diagnosis Related Group (DRG) amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareInpatientAdjudication.ppsOperatingHospitalSpecificDrgAmount`** (`string`): The hospital specific Diagnosis Related Group (DRG) amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareOutpatientAdjudication`** (`object`): Claim-level data related to the adjudication of Medicare claims not related to an inpatient setting. Required when outpatient adjudication information is reported in the remittance advice _or_ when you need to report remark codes. - **`claimInformation.otherSubscriberInformation.medicareOutpatientAdjudication.claimPaymentRemarkCode`** (`array of strings`): The remark code. Visit the X12 [Remittance Advice Remark Codes](https://x12.org/codes/remittance-advice-remark-codes) for a complete list. You can include up to five codes in this array. - **`claimInformation.otherSubscriberInformation.medicareOutpatientAdjudication.endStageRenalDiseasePaymentAmount`** (`string`): The End-Stage Renal Disease (ESRD) payment amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareOutpatientAdjudication.hcpcsPayableAmount`** (`string`): The claim Health Care Financing Administration Common Procedural Coding System (HCPCS) payable amount, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareOutpatientAdjudication.nonPayableProfessionalComponentBilledAmount`** (`string`): The professional component amount billed but not payable, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.medicareOutpatientAdjudication.reimbursementRate`** (`string`): The reimbursement percentage, expressed as a decimal. - **`claimInformation.otherSubscriberInformation.nonCoveredChargeAmount`** (`string`): Required when the destination payer's cost avoidance policy allows providers to bypass claim submission to the otherwise prior payer identified in `otherPayerName`. The amount must equal the total claim charge amount you reported in `claimInformation.claimChargeAmount`. - **`claimInformation.otherSubscriberInformation.otherInsuredGroupName`** (`string`): The name of the subscriber's health plan. Provide either this property OR the `groupNumber`, not both. If `groupNumber` is set, Stedi ignores this value and uses the value in `groupNumber`. - **`claimInformation.otherSubscriberInformation.otherPayerAttendingProvider`** (`object`): Information regarding the other payer's attending provider. The attending provider is the provider who is primarily responsible for the care of the patient. - **`claimInformation.otherSubscriberInformation.otherPayerAttendingProvider.otherPayerAttendingProviderIdentifier`** (`array of InstitutionalReferenceIdentification objects`) (required): The provider's identifier. The `qualifier` can be set to `OB` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN numbers are deprecated and should not be used in new claims. - **`claimInformation.otherSubscriberInformation.otherPayerAttendingProvider.otherPayerAttendingProviderIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerAttendingProvider.otherPayerAttendingProviderIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherPayerBillingProvider`** (`object`): Information regarding the other payer's billing provider. - **`claimInformation.otherSubscriberInformation.otherPayerBillingProvider.otherPayerBillingProviderIdentifier`** (`array of InstitutionalReferenceIdentification objects`) (required): The provider's identifier. The `qualifier` can be set to `G2` - Provider Commercial Number or `LU` - Location Number. Note that UPIN numbers are deprecated and should not be used in new claims. - **`claimInformation.otherSubscriberInformation.otherPayerBillingProvider.otherPayerBillingProviderIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerBillingProvider.otherPayerBillingProviderIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherPayerName`** (`object`) (required) - **`claimInformation.otherSubscriberInformation.otherPayerName.otherInsuredAdditionalIdentifier`** (`string`) - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress`** (`object`) - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress.city`** (`string`) (required): The city name. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerAdjudicationOrPaymentDate`** (`string`) - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerClaimAdjustmentIndicator`** (`boolean`): Required when the claim is being sent in the payer-to-payer COB model, AND the destination payer is secondary to the payer identified in this object, AND the payer identified in this object re-adjudicated the claim. Can be set to `Y` - Yes. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerClaimControlNumber`** (`string`): The other payer's claim control number for this claim. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerIdentifier`** (`string`) (required): The identifier specified in `otherPayerIdentifierTypeCode`. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerIdentifierTypeCode`** (`string`) (required): Code specifying the type of identifier used for the other payer. Can be set to `PI` - Payor Identification or `XV` - Centers for Medicare and Medicaid Services PlanID. `XV` is deprecated. - Allowed values: `PI`, `XV` - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerOrganizationName`** (`string`) (required): The business name of the other payer. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerPriorAuthorizationNumber`** (`string`): The other payer's prior authorization number. Required when this payer has assigned a prior authorization number to this claim. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerPriorAuthorizationOrReferralNumber`** (`string`): The other payer's referral number. Required when this payer has assigned a referral number to this claim. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerSecondaryIdentifier`** (`array of InstitutionalReferenceIdentification objects`): Additional identification number for the other payer. The `qualifier` property can be set to `2U` - Payer Identification Number, `EI` - Employer's Identification Number, `FY` - Claim Office Number, or `NF` - National Association of Insurance Commissioners (NAIC) Code. Only set `qualifier` to `2U` when `otherPayerIdentifierTypeCode` is `XV`. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerSecondaryIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerName.otherPayerSecondaryIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherPayerOperatingPhysician`** (`object`): Information regarding the other payer's operating physician. The operating physician is the provider who performed the procedure. - **`claimInformation.otherSubscriberInformation.otherPayerOperatingPhysician.otherPayerOperatingPhysicianIdentifier`** (`array of InstitutionalReferenceIdentification objects`) (required): The `qualifier` can be set to `OB` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN numbers are deprecated and should not be used in new claims. - **`claimInformation.otherSubscriberInformation.otherPayerOperatingPhysician.otherPayerOperatingPhysicianIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerOperatingPhysician.otherPayerOperatingPhysicianIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherPayerOtherOperatingPhysician`** (`object`): Information regarding the other payer's other operating physician. The other operating physician is the provider who performed a secondary surgical procedure or assisted the `otherPayerOperatingPhysician`. - **`claimInformation.otherSubscriberInformation.otherPayerOtherOperatingPhysician.otherPayerOtherOperatingPhysicianIdentifier`** (`array of InstitutionalReferenceIdentification objects`) (required): The physician's identifier. The `qualifier` can be set to `OB` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN numbers are deprecated and should not be used in new claims. - **`claimInformation.otherSubscriberInformation.otherPayerOtherOperatingPhysician.otherPayerOtherOperatingPhysicianIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerOtherOperatingPhysician.otherPayerOtherOperatingPhysicianIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherPayerReferringProvider`** (`object`): Information regarding the other payer's referring provider. This is the provider who sent the patient to another provider for services. - **`claimInformation.otherSubscriberInformation.otherPayerReferringProvider.otherPayerReferringProviderIdentifier`** (`array of InstitutionalReferenceIdentification objects`) (required): The provider's identifier. The `qualifier` can be set to `OB` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN numbers are deprecated and should not be used in new claims. - **`claimInformation.otherSubscriberInformation.otherPayerReferringProvider.otherPayerReferringProviderIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerReferringProvider.otherPayerReferringProviderIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherPayerRenderingProvider`** (`object`): Information regarding the other payer's rendering provider. The rendering provider is the provider who performed the service or non-surgical procedure. - **`claimInformation.otherSubscriberInformation.otherPayerRenderingProvider.otherPayerRenderingProviderIdentifier`** (`array of InstitutionalReferenceIdentification objects`) (required): The provider's identifier. The `qualifier` can be set to `OB` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN numbers are deprecated and should not be used in new claims. - **`claimInformation.otherSubscriberInformation.otherPayerRenderingProvider.otherPayerRenderingProviderIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerRenderingProvider.otherPayerRenderingProviderIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherPayerServiceFacilityLocation`** (`object`): Information regarding the other payer's service facility location. This is where the service was performed. - **`claimInformation.otherSubscriberInformation.otherPayerServiceFacilityLocation.otherPayerServiceFacilityLocationIdentifier`** (`array of InstitutionalReferenceIdentification objects`) (required): The facility's identifier. The `qualifier` can be set to `OB` - State License Number, `G2` - Provider Commercial Number, or `LU` - Location Number. - **`claimInformation.otherSubscriberInformation.otherPayerServiceFacilityLocation.otherPayerServiceFacilityLocationIdentifier[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.otherSubscriberInformation.otherPayerServiceFacilityLocation.otherPayerServiceFacilityLocationIdentifier[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.otherSubscriberInformation.otherSubscriberName`** (`object`) (required) - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address`** (`object`) - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address.city`** (`string`) (required): The city name. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.firstName`** (`string`) - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredAdditionalIdentifier`** (`array of strings`): The subscriber's social security number (SSN). This must be a string of exactly nine numbers with no separators. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredFirstName`** (`string`): The subscriber's first name. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredIdentifier`** (`string`) (required): The identifier specified in `otherInsuredIdentifierTypeCode`. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredIdentifierTypeCode`** (`string`) (required): Code identifying the type of identifier used for the other insured. Can be set to `II` - Standard Unique Health Identifier for each Individual in the United States or `MI` - Member Identification Number. Note that `II` is deprecated and should not be used in new claims. - Allowed values: `II`, `MI` - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredLastName`** (`string`) (required): The last name (when the subscriber is an individual) or the name of the organization (when the subscriber is an organization). **Don't** include the subscriber's name suffix, such as Jr. or III. Use the designated `otherInsuredSuffix` property instead. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredMiddleName`** (`string`): The subscriber's middle name or initial. - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredQualifier`** (`string`) (required): Code identifying the type of entity. Can be set to `1` - Person or `2` - Non-Person Entity. - Allowed values: `1`, `2` - **`claimInformation.otherSubscriberInformation.otherSubscriberName.otherInsuredSuffix`** (`string`): The subscriber's name suffix, such as Jr or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`claimInformation.otherSubscriberInformation.payerPaidAmount`** (`string`): The total amount in dollars the payer has paid on this claim. It is acceptable to set this to `0` (Zero). This is required when you include the `payToPlan` object, and you should set it to the amount the Medicaid agency actually paid. - **`claimInformation.otherSubscriberInformation.paymentResponsibilityLevelCode`** (`string`) (required) - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `P`, `S`, `T`, `U` - **`claimInformation.otherSubscriberInformation.policyNumber`** (`string`): The policy number for the subscriber's health plan. - **`claimInformation.otherSubscriberInformation.releaseOfInformationCode`** (`string`) (required): Code indicating whether the provider has on file a signed statement by the patient authorizing the release of medical data to other organizations. Can be set to `I` - Informed Consent to Release Medical Information or `Y` - Yes. Code `I` is required when the provider has not collected a signature AND state or federal laws do not require a signature be collected. Code `Y` is required when the provider has collected a signature OR when state or federal laws require a signature be collected. - Allowed values: `I`, `Y` - **`claimInformation.otherSubscriberInformation.remainingPatientLiability`** (`string`): This is the remaining amount (as determined by the provider) to be paid after the other payer identified in the `otherPayerName` object has adjudicated the claim. Required when the other payer adjudicated the claim and provided claim level information only _or_ when the other payer adjudicated the claim, and the provider received a paper remittance advice, and the provider does not have the ability to report line item information. Don't include this property if you're specifying remaining patient liability at the service line level. - **`claimInformation.patientAmountPaid`** (`string`) - **`claimInformation.patientControlNumber`** (`string`) (required): An identifier you assign to the claim. We **strongly recommend** submitting a unique value for this property so that you can use it to correlate this claim with responses, such as the [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/receive-claim-responses#correlate-277ca) and the [835 ERA](https://www.stedi.com/docs/healthcare/receive-claim-responses#correlate-835-era). - Use random strings. The identifier should be more complex than a simple sequential number and should be hard to guess. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters from the [basic character set](https://www.stedi.com/docs/healthcare/submit-institutional-claims#character-restrictions) to generate unique IDs. - Keep it to 17 characters max. Some payers cut off values longer than 17 characters in 277CAs and ERAs, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](https://www.stedi.com/docs/healthcare/submit-institutional-claims#character-restrictions), and avoid special characters that are only available in the extended character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - **`claimInformation.patientEstimatedAmountDue`** (`string`): The total estimated amount the patient must pay for the services listed in this claim. Expressed as a decimal, such as `20.50`. This includes any co-payments, co-insurance, or other costs. - **`claimInformation.patientReasonForVisits`** (`array of PatientReasonForVisit objects`): The diagnosis for which the patient visited an outpatient provider. Required when the claim involves outpatient visits. This may be different from the principal diagnosis. This is an array of objects and you can provide up to three objects. - **`claimInformation.patientReasonForVisits[].patientReasonForVisitCode`** (`string`) (required): The patient's reason for visit code. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - **Don't** submit the decimal point for ICD codes. The decimal point is implied. - **Don't** submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the [Value Set Authority Center](https://vsac.nlm.nih.gov/context/cs). If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`claimInformation.patientReasonForVisits[].qualifierCode`** (`string`) (required): Code identifying the type of reason for visit code used. Can be set to `APR` - International Classification of Diseases Clinical Modification Patient's Reason for Visit or `PR` - International Classification of Diseases Clinical Modification Patient's Reason for Visit. Note that ICD-9 is deprecated and cannot be used in new claims. - Allowed values: `APR`, `PR` - **`claimInformation.patientWeight`** (`string`) - **`claimInformation.placeOfServiceCode`** (`string`) (required): Code identifying the type of facility where the services were or may be performed. This must be the two-digit facility type code from the National Uniform Billing Committee [Official UB-04 Data File](https://www.nubc.org/license) (FL 04 - Type of Bill Facility Codes). - **`claimInformation.planParticipationCode`** (`string`) (required): Code indicating whether the provider accepts assignment. This refers to whether the provider accepts assignment and/or has a participation agreement with the destination payer. It does not indicate whether the patient has assigned benefits to the provider. Can be set to `A` - Assigned, `B` - Assignment Accepted on Clinical Lab Services Only, or `C` - Not Assigned. Choose `A` when the provider accepts assignment and/or has a participation agreement with the destination payer, OR the provider does not accept assignment and/or have a participation agreement, but is advising the payer to adjudicate this specific claim under the participating provider benefits allowed under certain plans. - Allowed values: `A`, `B`, `C` - **`claimInformation.principalDiagnosis`** (`object`) (required) - **`claimInformation.principalDiagnosis.presentOnAdmissionIndicator`** (`string`): Indicates whether the principal diagnosis was present on admission. Can be set to `N` - No (onset did NOT occur prior to admission to the hospital), `Y` - Yes (onset occurred prior to admission to the hospital), `U` - Unknown, or `W` - Not Applicable. - Allowed values: `N`, `Y`, `U`, `W` - **`claimInformation.principalDiagnosis.principalDiagnosisCode`** (`string`) (required): The principal diagnosis code for the patient. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - **Don't** submit the decimal point for ICD codes. The decimal point is implied. - **Don't** submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the [Value Set Authority Center](https://vsac.nlm.nih.gov/context/cs). If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`claimInformation.principalDiagnosis.qualifierCode`** (`string`) (required): Code identifying the type of diagnosis code used. Can be set to `ABK` - International Classification of Diseases Clinical Modification Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. Note that ICD-9 is deprecated and cannot be used in new claims. - Allowed values: `ABK`, `BK` - **`claimInformation.principalProcedureInformation`** (`object`) - **`claimInformation.principalProcedureInformation.principalProcedureCode`** (`string`) (required): The principal procedure code for the patient. It must be a valid code from the appropriate coding system. **Don't** submit the decimal for ICD codes; the decimal is implied. - **`claimInformation.principalProcedureInformation.principalProcedureDate`** (`string`): The date when the procedure was performed, formatted as `YYYYMMDD`. - **`claimInformation.principalProcedureInformation.qualifierCode`** (`string`) (required): Code identifying the type of procedure code used. Can be set to `BBR` - International Classification of Diseases Clinical Modification (ICD-10-PCS) Principal Procedure Codes, `BR` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Procedure Codes, or `CAH` - Advanced Billing Concepts (ABC) Codes. Note that ICD-9 and ABC codes are deprecated and cannot be used in new claims. - Allowed values: `BBR`, `BR`, `CAH` - **`claimInformation.propertyCasualtyClaimNumber`** (`string`): The agency claim number for this transaction. Used when services included in this claim are part of a property and casualty claim. This property is typically not used by Stedi customers. - **`claimInformation.releaseInformationCode`** (`string`) (required): Indicates whether the provider has on file a signed statement by the patient authorizing the release of medical data to other organizations. Can be set to `Y` - Yes, or `I` - Informed Consent to Release Medical Information for Conditions or Diagnoses Regulated by Federal Statues. Use `I` when the provider has not collected a signature AND state or federal laws do not require a signature be collected. - Allowed values: `I`, `Y` - **`claimInformation.serviceFacilityLocation`** (`object`): The service facility location. Required when the location of healthcare services is different from the billing provider's address. - When an organization's healthcare provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier) is provided to identify the service location, the organization healthcare provider must be external to the entity identified as the billing provider (for example, a reference lab). - The service location can't be a component or subpart of the billing provider entity. Only include this object when the service location is **different** from the billing provider's address. If you include this object when the address is the same, Stedi omits all of the service facility location information from the claim submission, including the name and any identifiers. - Sometimes the billing provider is an actual physician group that is located at the same address as a hospital, but is in fact a separate entity. In this case, you can differentiate the service facility location by including the specific suite or building number of the physician group. This ensures that the service facility location is different from the billing provider's address and is reported accurately. - **`claimInformation.serviceFacilityLocation.address`** (`object`) (required) - **`claimInformation.serviceFacilityLocation.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceFacilityLocation.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceFacilityLocation.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceFacilityLocation.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceFacilityLocation.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceFacilityLocation.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceFacilityLocation.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceFacilityLocation.identificationCode`** (`string`): The organization [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the service facility location. Required when the service location to be identified has an NPI and is not a component or subpart of the billing provider. - **`claimInformation.serviceFacilityLocation.organizationName`** (`string`) (required): The business name of the laboratory or facility. - **`claimInformation.serviceFacilityLocation.secondaryIdentificationQualifierCode`** (`string`): Code identifying the type of secondary identification. Can be set to `0B` - State License Number, `G2` - Provider Commercial Number, or `LU` - Location Number. - Allowed values: `0B`, `G2`, `LU` - **`claimInformation.serviceFacilityLocation.secondaryIdentifier`** (`string`): The identifier specified in `secondaryIdentifierQualifierCode`. You can only include one secondary identifier for the service facility. - **`claimInformation.serviceLines`** (`array of InstitutionalServiceLine objects`) (required): Information about one or more services rendered to the patient. - Each service line must be a unique service event as defined by the payer's billing policies. This means that you can use the same procedure code on multiple service lines as long as they are distinct events. - Some procedure codes are date-specific. In these cases, you may need to create a separate service line with that code for each applicable date of service, even if the episode of care extended over multiple days. - Service lines can share the same dates of service if the patient received multiple services on the same day. - **`claimInformation.serviceLines[].adjustedRepricedLineItemReferenceNumber`** (`string`): Required when a repricing (pricing) organization needs to have an identifying number on an adjusted service line in their submission to their payer organization. Providers shouldn't complete this property. - **`claimInformation.serviceLines[].assignedNumber`** (`string`): Stedi assigns this value automatically. It's a unique number identifying the service line within the claim. - **`claimInformation.serviceLines[].description`** (`string`): A free-form description to clarify information about the service line. You can use this to further describe the service/product/supply reported in the service line or for non-specific procedure codes. Non-specific procedure codes may include descriptors such as 'Not Otherwise Classified (NOC)', 'Unlisted', 'Unspecified', 'Other', 'Prescription Drug: Generic', 'Prescription Drug, Brand Name', or 'Miscellaneous'. - **`claimInformation.serviceLines[].drugIdentification`** (`object`) - **`claimInformation.serviceLines[].drugIdentification.linkSequenceNumber`** (`string`): The sequence number assigned to the drug or biologic. Required when the provided medication involves the compounding of two or more drugs being reported and there is no prescription number. The link sequence number is a provider-assigned number unique to this claim. Its purpose is to enable the receiver to piece together the components of the compound. Note that you can set either this property _or_ `pharmacyPrescriptionNumber`, but not both. - **`claimInformation.serviceLines[].drugIdentification.measurementUnitCode`** (`string`) (required): Code identifying the unit of measure for the drug or biologic. Can be set to `F2` - International Unit, `GR` - Gram, `ME` - Milligram, `ML` - Milliliter, or `UN` - Unit. - Allowed values: `F2`, `GR`, `ME`, `ML`, `UN` - **`claimInformation.serviceLines[].drugIdentification.nationalDrugCode`** (`string`) (required): The National Drug Code (NDC) number for the drug or biologic. This is a unique number that identifies the drug or biologic, including the labeler code, product code, and package code. The NDC number must be formatted as 5-4-2, with hyphens separating the three parts. For example, 12345-6789-01. - **`claimInformation.serviceLines[].drugIdentification.nationalDrugUnitCount`** (`string`) (required): The number of units of the drug or biologic, formtted as a decimal. - **`claimInformation.serviceLines[].drugIdentification.pharmacyPrescriptionNumber`** (`string`): The prescription number assigned by the pharmacy. Required when dispensing of the drug has been done with an assigned prescription number. In cases where a compound drug is being billed, the components of the compound will all have the same prescription number. Payers receiving the claim can relate all the components by matching the prescription number. Note that you can set either this property _or_ `linkSequenceNumber`, but not both. - **`claimInformation.serviceLines[].facilityTaxAmount`** (`string`): The amount of the facility tax or surcharge, formatted as a decimal. Required when a facility tax applies to the service being reported. The `claimInformation.serviceLines[].institutionalService.lineItemChargeAmount` must include the amount you report here. - **`claimInformation.serviceLines[].institutionalService`** (`object`) (required) - **`claimInformation.serviceLines[].institutionalService.description`** (`string`): The description of the procedure identified in `procedureCode`. - **`claimInformation.serviceLines[].institutionalService.lineItemChargeAmount`** (`string`) (required): The amount charged for the service line, expressed as a decimal. This should include the provider's base charge and any applicable tax amounts reported within the service line. - **`claimInformation.serviceLines[].institutionalService.measurementUnit`** (`string`) (required): The unit of measurement for the service. Can be set to `DA` - Days or `UN` - Unit. - Allowed values: `DA`, `UN` - **`claimInformation.serviceLines[].institutionalService.nonCoveredChargeAmount`** (`string`): The non-covered service amount, expressed as a decimal. This property isn't intended for sending claims to secondary insurance after receiving a remittance from the original payer. It's used when a provider wants to report that they performed an uncovered service for a patient, but they aren't asking for payment. For example, a cosmetic procedure that isn't covered by the patient's health plan. - **`claimInformation.serviceLines[].institutionalService.procedureCode`** (`string`): The procedure code. If you set this property, you must also set the `procedureIdentifier`. - **`claimInformation.serviceLines[].institutionalService.procedureIdentifier`** (`string`): Code identifying the type of `procedureCode`. If you set this property, you must also set `procedureCode`. Can be set to `ER` - Jurisdiction Specific Procedure and Supply Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `HP` - Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, or `WK` - Advanced Billing Concepts (ABC) Codes. Note that ABC codes are deprecated and shouldn't be used in new claims. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier-codes) for more information and usage instructions. - Allowed values: `ER`, `HC`, `HP`, `IV`, `WK` - **`claimInformation.serviceLines[].institutionalService.procedureModifiers`** (`array of strings`): A modifier that conveys special circumstances related to the performance of the service. - **`claimInformation.serviceLines[].institutionalService.serviceLineRevenueCode`** (`string`) (required): The identifying number for the product or service. Visit the [National Uniform Billing Committee (NUBC) Codes](https://www.nubc.org/license) documentation for a complete list. - **`claimInformation.serviceLines[].institutionalService.serviceUnitCount`** (`string`) (required): The number of units of service provided. The maximum length for this property is 8 digits, excluding the decimal. When a decimal is used, the maximum number of digits allowed to the right of the decimal is 3. The units depend on the procedure code being billed and the nature of the service. For example, they may correspond to days (1 unit = 1 inpatient day), individual treatments or encounters (3 units = 3 dialysis sessions), or medication doses (2 units = 2 doses or vials). - **`claimInformation.serviceLines[].lineAdjudicationInformation`** (`array of InstitutionalLineAdjudicationInformation objects`): Includes service line adjudication information for coordination of benefits between the initial payers of a health care claim and all subsequent payers. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].adjudicationOrPaymentDate`** (`string`) (required): The date the claim was paid, formatted as `YYYYMMDD`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].bundledLineNumber`** (`string`): The LX assigned number of the service line into which this service line is bundled. It's only used to bundle service lines. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].lineAdjustment`** (`array of InstitutionalClaimAdjustment objects`): Adjustment reason codes and amounts as needed for the service line. You can include up to five of these objects within `claimInformation.serviceLines[].lineAdjudicationInformation[].claimAdjustmentInformation`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].lineAdjustment[].adjustmentGroupCode`** (`string`) (required): Code identifying the general category of payment adjustment. Can be set to `CO` - Contractual Obligations, `CR` - Correction and Reversals, `OA` - Other adjustments, `PI` - Payor Initiated Reductions, or `PR` - Patient Responsibility. - Allowed values: `CO`, `CR`, `OA`, `PI`, `PR` - **`claimInformation.serviceLines[].lineAdjudicationInformation[].lineAdjustment[].claimAdjustmentDetails`** (`array of InstitutionalClaimAdjustmentDetails objects`): The adjustment reason, amount, and quantity. You can include up to six of these objects to describe a single `adjustmentGroupCode`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].lineAdjustment[].claimAdjustmentDetails[].adjustmentAmount`** (`string`) (required): The dollar amount of the adjustment, expressed as a decimal. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].lineAdjustment[].claimAdjustmentDetails[].adjustmentQuantity`** (`string`): The units of service being adjusted, expressed as a decimal. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].lineAdjustment[].claimAdjustmentDetails[].adjustmentReasonCode`** (`string`) (required): Code identifying the detailed reason the adjustment was made. Visit the X12 [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) for a complete list. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].otherPayerPrimaryIdentifier`** (`string`) (required): The payer ID for the payer responsible for reimbursement. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].paidServiceUnitCount`** (`string`) (required): The number of paid units from the remittance advice. When paid units are not present on the remittance advice, use the original billed units. The maximum length for this property is 8 digits excluding the decimal. When a decimal is used, the maximum number of digits allowed to the right of the decimal is three. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureCode`** (`string`): The procedure code. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureCodeDescription`** (`string`): A description of the procedure identified in `procedureCode`. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].procedureModifier`** (`array of strings`): A modifier that conveys special circumstances related to the performance of the service. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].productOrServiceIDQualifier`** (`string`): Code identifying the type of `procedureCode`. Can be set to `ER` - Jurisdiction Specific Procedure and Supply Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `HP` - Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, or `WK` - Advanced Billing Concepts (ABC) Codes. Note that ABC codes are deprecated and shouldn't be used in new claims. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier-codes) for a complete list and usage guidelines. - Allowed values: `ER`, `HC`, `HP`, `IV`, `WK` - **`claimInformation.serviceLines[].lineAdjudicationInformation[].remainingPatientLiability`** (`string`): The remaining amount (as determined by the provider) to be paid after the other payer identified in the `otherPayerPrimaryIdentifier` property has adjudicated the claim. Expressed as a decimal. Only used in claims submitted by providers - not in payer-to-payer coordination of benefits (COB). Don't include this if you already provided `claimInformation.otherSubscriberInformation.remainingPatientLiability` for the claim. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].serviceLinePaidAmount`** (`string`) (required): The amount paid for this service line, expressed as a decimal. Zero (0) is an acceptable value. - **`claimInformation.serviceLines[].lineAdjudicationInformation[].serviceLineRevenueCode`** (`string`) (required): The revenue code for the service line. - **`claimInformation.serviceLines[].lineAdjustmentInformation`** (`object`) - **`claimInformation.serviceLines[].lineAdjustmentInformation.bundledOrUnbundledLineNumber`** (`string`) - **`claimInformation.serviceLines[].lineAdjustmentInformation.claimAdjustment`** (`object`) - **`claimInformation.serviceLines[].lineAdjustmentInformation.claimAdjustment.adjustmentGroupCode`** (`string`) (required): Code identifying the general category of payment adjustment. Can be set to `CO` - Contractual Obligations, `CR` - Correction and Reversals, `OA` - Other adjustments, `PI` - Payor Initiated Reductions, or `PR` - Patient Responsibility. - Allowed values: `CO`, `CR`, `OA`, `PI`, `PR` - **`claimInformation.serviceLines[].lineAdjustmentInformation.claimAdjustment.claimAdjustmentDetails`** (`array of InstitutionalClaimAdjustmentDetails objects`): The adjustment reason, amount, and quantity. You can include up to six of these objects to describe a single `adjustmentGroupCode`. - **`claimInformation.serviceLines[].lineAdjustmentInformation.claimAdjustment.claimAdjustmentDetails[].adjustmentAmount`** (`string`) (required): The dollar amount of the adjustment, expressed as a decimal. - **`claimInformation.serviceLines[].lineAdjustmentInformation.claimAdjustment.claimAdjustmentDetails[].adjustmentQuantity`** (`string`): The units of service being adjusted, expressed as a decimal. - **`claimInformation.serviceLines[].lineAdjustmentInformation.claimAdjustment.claimAdjustmentDetails[].adjustmentReasonCode`** (`string`) (required): Code identifying the detailed reason the adjustment was made. Visit the X12 [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) for a complete list. - **`claimInformation.serviceLines[].lineAdjustmentInformation.claimPaidDate`** (`string`) (required): Date expressed as follows: YYYYMMDD, where YYYY = year, MM = month (01-12) and DD = day (01-31) - **`claimInformation.serviceLines[].lineAdjustmentInformation.otherPayerPrimaryIdentifier`** (`string`) (required) - **`claimInformation.serviceLines[].lineAdjustmentInformation.paidServiceUnitCount`** (`string`) (required) - **`claimInformation.serviceLines[].lineAdjustmentInformation.procedureCode`** (`string`) (required) - **`claimInformation.serviceLines[].lineAdjustmentInformation.procedureCodeDescription`** (`string`) - **`claimInformation.serviceLines[].lineAdjustmentInformation.procedureModifiers`** (`array of strings`) - **`claimInformation.serviceLines[].lineAdjustmentInformation.remainingPatientLiability`** (`string`) (required) - **`claimInformation.serviceLines[].lineAdjustmentInformation.serviceIdQualifier`** (`string`) (required): Code identifying the type of `procedureCode`. Can be set to `ER` - Jurisdiction Specific Procedure and Supply Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `HP` - Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, or `WK` - Advanced Billing Concepts (ABC) Codes. Note that ABC codes are deprecated and shouldn't be used in new claims. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier-codes) for a complete list and usage guidelines. - Allowed values: `ER`, `HC`, `HP`, `IV`, `WK` - **`claimInformation.serviceLines[].lineAdjustmentInformation.serviceLinePaidAmount`** (`string`) (required) - **`claimInformation.serviceLines[].lineItemControlNumber`** (`string`): A unique identifier for this service line within the claim. It appears in the 835 (ERA) response as `lineItemControlNumber`, allowing you to correlate ERAs to the specific service lines from the original claim. If you don't set this property, Stedi uses a random ULID. Stedi returns service line identifiers in the `claimReference.serviceLines[].lineItemControlNumber` object of the synchronous API response. - **`claimInformation.serviceLines[].lineNoteText`** (`string`): Another way to provide additional information for comment or special instruction - same as `thirdPartyOrganizationNotes`. Required when the TPO/repricer needs to forward additional information to the payer. - **`claimInformation.serviceLines[].linePricingInformation`** (`object`) - **`claimInformation.serviceLines[].linePricingInformation.apgAmount`** (`string`) - **`claimInformation.serviceLines[].linePricingInformation.apgCode`** (`string`) - **`claimInformation.serviceLines[].linePricingInformation.exceptionCode`** (`string`): Code specifying the exception reason for consideration of out-of-network health care services. Can be set to `1` - Non-Network Professional Provider in Network Hospital, `2` - Emergency Care, `3` - Services or Specialist not in Network, `4` - Out-of-Service Area, `5` - State Mandates, or `6` - Other. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6` - **`claimInformation.serviceLines[].linePricingInformation.flatRateAmount`** (`string`) - **`claimInformation.serviceLines[].linePricingInformation.measurementUnitCode`** (`string`): The unit of measurement for the service. Can be set to `DA` - Days or `UN` - Unit. - Allowed values: `DA`, `UN` - **`claimInformation.serviceLines[].linePricingInformation.policyComplianceCode`** (`string`) - Allowed values: `1`, `2`, `3`, `4`, `5` - **`claimInformation.serviceLines[].linePricingInformation.pricingMethodologyCode`** (`string`) (required): Code indicating the pricing or repricing methodology. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#pricing-methodology-codes-2) for a complete list. - Allowed values: `00`, `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14` - **`claimInformation.serviceLines[].linePricingInformation.rejectReasonCode`** (`string`) - Allowed values: `T1`, `T2`, `T3`, `T4`, `T5`, `T6` - **`claimInformation.serviceLines[].linePricingInformation.repricedAllowedAmount`** (`string`) (required) - **`claimInformation.serviceLines[].linePricingInformation.repricedApprovedHCPCSCode`** (`string`) - **`claimInformation.serviceLines[].linePricingInformation.repricedApprovedServiceUnitCount`** (`string`) - **`claimInformation.serviceLines[].linePricingInformation.repricedOrganizationIdentifier`** (`string`) - **`claimInformation.serviceLines[].linePricingInformation.repricedSavingAmount`** (`string`) - **`claimInformation.serviceLines[].linePricingInformation.serviceIdQualifier`** (`string`): Code identifying the type of `procedureCode`. If you set this property, you must also set `procedureCode`. Can be set to `ER` - Jurisdiction Specific Procedure and Supply Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `HP` - Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, or `WK` - Advanced Billing Concepts (ABC) Codes. Note that ABC codes are deprecated and shouldn't be used in new claims. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier-codes) for more information and usage instructions. - Allowed values: `ER`, `HC`, `HP`, `IV`, `WK` - **`claimInformation.serviceLines[].lineRepricingInformation`** (`object`) - **`claimInformation.serviceLines[].lineRepricingInformation.exceptionCode`** (`string`): Code specifying the exception reason for consideration of out-of-network health care services. Can be set to `1` - Non-Network Professional Provider in Network Hospital, `2` - Emergency Care, `3` - Services or Specialist not in Network, `4` - Out-of-Service Area, `5` - State Mandates, or `6` - Other. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6` - **`claimInformation.serviceLines[].lineRepricingInformation.policyComplianceCode`** (`string`) - Allowed values: `1`, `2`, `3`, `4`, `5` - **`claimInformation.serviceLines[].lineRepricingInformation.pricingMethodologyCode`** (`string`) (required): Code indicating the pricing or repricing methodology. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#pricing-methodology-codes-2) for a complete list. - Allowed values: `00`, `01`, `02`, `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `14` - **`claimInformation.serviceLines[].lineRepricingInformation.productOrServiceIDQualifier`** (`string`): Code identifying the type of product or service ID used. Can be set to `ER` - Jurisdiction Specific Procedure and Supply Codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `HP` - Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, or `WK` - Advanced Billing Concepts (ABC) Codes. Note that ABC codes are deprecated and should not be used in new claims. If you provide this property, you must also provide `repricedApprovedHCPCSCode` Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#product-or-service-id-qualifier-codes) for a complete list and additional usage notes. - Allowed values: `ER`, `HC`, `HP`, `IV`, `WK` - **`claimInformation.serviceLines[].lineRepricingInformation.rejectReasonCode`** (`string`) - Allowed values: `T1`, `T2`, `T3`, `T4`, `T5`, `T6` - **`claimInformation.serviceLines[].lineRepricingInformation.repricedAllowedAmount`** (`string`) (required): The allowed amount, expressed as a decimal. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedApprovedAmount`** (`string`): The approved DRG amount, expressed as a decimal. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedApprovedDRGCode`** (`string`): The approved DRG code. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedApprovedHCPCSCode`** (`string`): The approved procedure code. If you provide this property, you must also include `productOrServiceIDQualifier`. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedApprovedRevenueCode`** (`string`): The approved revenue code. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedApprovedServiceUnitCode`** (`string`): The approved service units or inpatient days. Can be set to `DA` - Days or `UN` - Unit. - Allowed values: `DA`, `UN` - **`claimInformation.serviceLines[].lineRepricingInformation.repricedApprovedServiceUnitCount`** (`string`): The approved service units or inpatient days. The maximum length for this field is 8 digits excluding the decimal. When a decimal is used, the maximum number of digits allowed to the right of the decimal is three. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedOrgIdentifier`** (`string`): The organization identification number. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedPerDiem`** (`string`): The pricing rate associated with per diem or flat rate pricing, expressed as a decimal. - **`claimInformation.serviceLines[].lineRepricingInformation.repricedSavingAmount`** (`string`): The savings amount, expressed as a decimal. - **`claimInformation.serviceLines[].lineSupplementInformation`** (`object`): Additional information or documentation required for the claim. This is where you can include information about [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments), if applicable. - **`claimInformation.serviceLines[].lineSupplementInformation.adjustedRepricedClaimRefNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.autoAccidentState`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.claimControlNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.claimNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.demoProjectIdentifier`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.investigationalDeviceExemptionNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.medicalRecordNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.peerReviewAuthorizationNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.priorAuthorizationNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.referralNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformation`** (`object`) - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformation.attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformation.attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformation.attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformation.attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformations`** (`array of InstitutionalReportInformation objects`): An array of report information for the claim. Use this when you need to submit multiple report information records. You can submit up to 10 objects in this array. Required when you plan to submit [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for the claim electronically through Stedi APIs or SFTP, when there is a paper attachment following this claim, or when the provider deems it necessary to identify that they have additional information at their office that is available upon request. - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformations[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformations[].attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformations[].attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.serviceLines[].lineSupplementInformation.reportInformations[].attachmentTransmissionCode`** (`string`) (required): Code identifying the method by which the provider's report is attached. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.serviceLines[].lineSupplementInformation.repricedClaimNumber`** (`string`) - **`claimInformation.serviceLines[].lineSupplementInformation.serviceAuthorizationExceptionCode`** (`string`): Code indicating the type of service authorization exception. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#service-authorization-exception-codes) for a complete list. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7` - **`claimInformation.serviceLines[].operatingPhysician`** (`object`) - **`claimInformation.serviceLines[].operatingPhysician.firstName`** (`string`): The physician's first name. - **`claimInformation.serviceLines[].operatingPhysician.identificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`claimInformation.serviceLines[].operatingPhysician.lastName`** (`string`) (required): The physician's last name. - **`claimInformation.serviceLines[].operatingPhysician.middleName`** (`string`): The physician's middle name or initial. - **`claimInformation.serviceLines[].operatingPhysician.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the physician. - **`claimInformation.serviceLines[].operatingPhysician.organizationName`** (`string`): The physician's business name. - **`claimInformation.serviceLines[].operatingPhysician.secondaryIdentifier`** (`string`): The identifier specified in `identificationQualifierCode`. You can only include one secondary identifier for the provider. - **`claimInformation.serviceLines[].operatingPhysician.suffix`** (`string`): The physician's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].otherOperatingPhysician`** (`object`) - **`claimInformation.serviceLines[].otherOperatingPhysician.firstName`** (`string`): The physician's first name. - **`claimInformation.serviceLines[].otherOperatingPhysician.identificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`claimInformation.serviceLines[].otherOperatingPhysician.lastName`** (`string`) (required): The physician's last name. - **`claimInformation.serviceLines[].otherOperatingPhysician.middleName`** (`string`): The physician's middle name or initial. - **`claimInformation.serviceLines[].otherOperatingPhysician.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the physician. - **`claimInformation.serviceLines[].otherOperatingPhysician.organizationName`** (`string`): The physician's business name. - **`claimInformation.serviceLines[].otherOperatingPhysician.secondaryIdentifier`** (`string`): The identifier specified in `identificationQualifierCode`. You can only include one secondary identifier for the provider. - **`claimInformation.serviceLines[].otherOperatingPhysician.suffix`** (`string`): The physician's name suffix, such as Jr. or III. - **`claimInformation.serviceLines[].referringProvider`** (`object`): Information about the provider who referred the patient for care. - Include this object only when the referring provider is different than the provider listed in the `attending` object. - This should be an individual, not an organization, and you should supply at least the provider's `lastName` and an identifier, which is typically the `npi`. - **`claimInformation.serviceLines[].referringProvider.address`** (`object`) - **`claimInformation.serviceLines[].referringProvider.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].referringProvider.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].referringProvider.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].referringProvider.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].referringProvider.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].referringProvider.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].referringProvider.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].referringProvider.commercialNumber`** (`string`) - **`claimInformation.serviceLines[].referringProvider.contactInformation`** (`object`) - **`claimInformation.serviceLines[].referringProvider.contactInformation.email`** (`string`): The email address. - **`claimInformation.serviceLines[].referringProvider.contactInformation.faxNumber`** (`string`): The fax number. - **`claimInformation.serviceLines[].referringProvider.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`claimInformation.serviceLines[].referringProvider.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].referringProvider.contactInformation.validContact`** (`boolean`) - **`claimInformation.serviceLines[].referringProvider.employerId`** (`string`) - **`claimInformation.serviceLines[].referringProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].referringProvider.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].referringProvider.locationNumber`** (`string`) - **`claimInformation.serviceLines[].referringProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].referringProvider.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`claimInformation.serviceLines[].referringProvider.organizationName`** (`string`): The provider's business name. - **`claimInformation.serviceLines[].referringProvider.providerType`** (`string`): Defines the referring provider type. - Allowed values: `ReferringProvider` - **`claimInformation.serviceLines[].referringProvider.providerUpinNumber`** (`string`) - **`claimInformation.serviceLines[].referringProvider.referenceIdentification`** (`array of InstitutionalReferenceIdentification objects`): Additional identifiers for the provider. You can set `qualifier` to `2U` - Payer Identification Number. - **`claimInformation.serviceLines[].referringProvider.referenceIdentification[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.serviceLines[].referringProvider.referenceIdentification[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.serviceLines[].referringProvider.secondaryIdentificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2` - **`claimInformation.serviceLines[].referringProvider.secondaryIdentifier`** (`string`): The identifier specified in `secondaryIdentifierQualifierCode`. You can only include one secondary identifier for the provider. - **`claimInformation.serviceLines[].referringProvider.stateLicenseNumber`** (`string`) - **`claimInformation.serviceLines[].referringProvider.suffix`** (`string`): The provider's suffix, such as Jr. or Sr. - **`claimInformation.serviceLines[].referringProvider.taxonomyCode`** (`string`) - **`claimInformation.serviceLines[].renderingProvider`** (`object`): Information about the provider who delivered the medical services or non-surgical procedures in this service line. This must be an individual, not an organization, and you must include the provider's `lastName` and an identifier, which is typically the `npi`. The provider's `firstName` is also required, if applicable. Include this object when the following are both true: - The rendering provider for this service line is different than the provider listed in the `attending` and `rendering` objects for the entire claim. - State or federal regulatory requirements call for a combined claim. A combined claim includes both facility and professional components, such as a Medicaid clinic bill or a critical access hospital claim. - **`claimInformation.serviceLines[].renderingProvider.address`** (`object`) - **`claimInformation.serviceLines[].renderingProvider.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`claimInformation.serviceLines[].renderingProvider.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`claimInformation.serviceLines[].renderingProvider.address.city`** (`string`) (required): The city name. - **`claimInformation.serviceLines[].renderingProvider.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`claimInformation.serviceLines[].renderingProvider.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`claimInformation.serviceLines[].renderingProvider.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`claimInformation.serviceLines[].renderingProvider.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`claimInformation.serviceLines[].renderingProvider.commercialNumber`** (`string`) - **`claimInformation.serviceLines[].renderingProvider.contactInformation`** (`object`) - **`claimInformation.serviceLines[].renderingProvider.contactInformation.email`** (`string`): The email address. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.faxNumber`** (`string`): The fax number. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`claimInformation.serviceLines[].renderingProvider.contactInformation.validContact`** (`boolean`) - **`claimInformation.serviceLines[].renderingProvider.employerId`** (`string`) - **`claimInformation.serviceLines[].renderingProvider.firstName`** (`string`): The provider's first name. - **`claimInformation.serviceLines[].renderingProvider.lastName`** (`string`): The provider's last name. - **`claimInformation.serviceLines[].renderingProvider.locationNumber`** (`string`) - **`claimInformation.serviceLines[].renderingProvider.middleName`** (`string`): The provider's middle name or initial. - **`claimInformation.serviceLines[].renderingProvider.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`claimInformation.serviceLines[].renderingProvider.organizationName`** (`string`): The provider's business name. - **`claimInformation.serviceLines[].renderingProvider.providerType`** (`string`): Defines the rendering provider type. - Allowed values: `RenderingProvider` - **`claimInformation.serviceLines[].renderingProvider.providerUpinNumber`** (`string`) - **`claimInformation.serviceLines[].renderingProvider.referenceIdentification`** (`array of InstitutionalReferenceIdentification objects`): Additional identifiers for the provider. You can set `qualifier` to `2U` - Payer Identification Number. - **`claimInformation.serviceLines[].renderingProvider.referenceIdentification[].identifier`** (`string`) (required): The identifier specified in `qualifier`. - **`claimInformation.serviceLines[].renderingProvider.referenceIdentification[].qualifier`** (`string`) (required): The code qualifying the type of `identifier`. - **`claimInformation.serviceLines[].renderingProvider.secondaryIdentificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`claimInformation.serviceLines[].renderingProvider.secondaryIdentifier`** (`string`): The identifier specified in `secondaryIdentifierQualifierCode`. You can only include one secondary identifier for the provider. - **`claimInformation.serviceLines[].renderingProvider.stateLicenseNumber`** (`string`) - **`claimInformation.serviceLines[].renderingProvider.suffix`** (`string`): The provider's suffix, such as Jr. or Sr. - **`claimInformation.serviceLines[].renderingProvider.taxonomyCode`** (`string`) - **`claimInformation.serviceLines[].repricedLineItemReferenceNumber`** (`string`): Required when a repricing (pricing) organization needs to have an identifying number on the service line in their submission to their payer organization. - **`claimInformation.serviceLines[].serviceDate`** (`string`): Either a single date of service or the beginning of a range of service dates, formatted as `YYYYMMDD`. If a range is provided, the end date should be provided in `serviceDateEnd`. This property is required on outpatient service lines where a drug is not being billed and the Statement Covers Period is greater than one day. It's also required when a drug is being billed and the payer's adjudication is known to be impacted by the drug duration or the date the prescription was written. In cases where a drug is being billed on a service line, this property may be used to indicate the date the prescription was written (or otherwise communicated by the prescriber if not written). This property may also be used to indicate the beginning of the duration for which the drug supply will be used by the patient. The difference in dates, including both the begin and end dates, are the days supply of the drug. Example: 20000101-20000107 (1/1/00 to 1/7/00) is used for a 7 day supply where the first day of the drug used by the patient is 1/1/00. In the event a drug is administered on less than a daily basis (for example, every other day) the date range would include the entire period during which the drug was supplied, including the last day the drug was used. Example: 20000101-20000108 (1/1/00 to 1/8/00) is used for an 8 days supply where the prescription is written for Q48 (every 48 hours), four doses of the drug are dispensed and the first dose is used on 1/1/00. - **`claimInformation.serviceLines[].serviceDateEnd`** (`string`): The end of a range of service dates, formatted as `YYYYMMDD`. If you include this property, you must also include `serviceDate` to indicate the beginning of the range. - **`claimInformation.serviceLines[].serviceLineDateInformation`** (`object`) - **`claimInformation.serviceLines[].serviceLineDateInformation.beginServiceDate`** (`string`): Date expressed as follows: YYYYMMDD, where YYYY = year, MM = month (01-12) and DD = day (01-31) - **`claimInformation.serviceLines[].serviceLineDateInformation.endServiceDate`** (`string`): Date expressed as follows: YYYYMMDD, where YYYY = year, MM = month (01-12) and DD = day (01-31) - **`claimInformation.serviceLines[].serviceLineDateInformation.serviceDate`** (`string`): Date expressed as follows: YYYYMMDD, where YYYY = year, MM = month (01-12) and DD = day (01-31) - **`claimInformation.serviceLines[].serviceLineDateInformation.validDateInformation`** (`boolean`) - **`claimInformation.serviceLines[].serviceLineReferenceInformation`** (`any`): Additional identifiers for the service line. We **strongly recommend** setting the `providerControlNumber` property for each service line within the claim. - **`claimInformation.serviceLines[].serviceLineReferenceInformation (variant 1).providerControlNumber`** (`string`) (required): A unique identifier for this service line within the claim. It appears in the 835 (ERA) response as `lineItemControlNumber`, allowing you to correlate ERAs to the specific service lines from the original claim. We **strongly recommend** setting this property for every service line within the claim. We also recommend using a [ULID](https://github.com/ulid/spec) instead of a UUID because payers are only required to store up to 30 characters for this value. - **`claimInformation.serviceLines[].serviceLineReferenceInformation (variant 2).repricedLineItemRefNumber`** (`string`) (required): Required when a repricing (pricing) organization needs to have an identifying number on the service line in their submission to their payer organization. Providers shouldn't complete this property. - **`claimInformation.serviceLines[].serviceLineReferenceInformation (variant 3).adjustedRepricedLineItemRefNumber`** (`string`) (required): Required when a repricing (pricing) organization needs to have an identifying number on an adjusted service line in their submission to their payer organization. Providers shouldn't complete this property. - **`claimInformation.serviceLines[].serviceLineSupplementalInformation`** (`object`) - **`claimInformation.serviceLines[].serviceLineSupplementalInformation.attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.serviceLines[].serviceLineSupplementalInformation.attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.serviceLines[].serviceLineSupplementalInformation.attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.serviceLines[].serviceLineSupplementalInformation.attachmentTransmissionCode`** (`string`) (required): Code indicating the method by which the attachment was transmitted. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.serviceLines[].serviceLineSupplementalInformations`** (`array of InstitutionalServiceLineSupplementalInformation objects`): An array of supplemental information for the service line. This is the array version of the `serviceLineSupplementalInformation` property. This array is required when you plan to submit multiple [attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for the service line electronically through Stedi APIs or SFTP, when there is a paper attachment following this claim, or when the provider deems it necessary to identify additional information that is being held at the provider's office and is available upon request. You can submit up to 10 objects in this array. - **`claimInformation.serviceLines[].serviceLineSupplementalInformations[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`claimInformation.serviceLines[].serviceLineSupplementalInformations[].attachmentId`** (`string`): The unique identifier for the attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is **required** when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`claimInformation.serviceLines[].serviceLineSupplementalInformations[].attachmentReportTypeCode`** (`string`) (required): Code indicating the title or contents of a document, report or supporting item. For example, `08` - Plan of Treatment or `CT` - Certification. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list. - Allowed values: `03`, `04`, `05`, `06`, `07`, `08`, `09`, `10`, `11`, `13`, `15`, `21`, `A3`, `A4`, `AM`, `AS`, `B2`, `B3`, `B4`, `BR`, `BS`, `BT`, `CB`, `CK`, `CT`, `D2`, `DA`, `DB`, `DG`, `DJ`, `DS`, `EB`, `HC`, `HR`, `I5`, `IR`, `LA`, `M1`, `MT`, `NN`, `OB`, `OC`, `OD`, `OE`, `OX`, `OZ`, `P4`, `P5`, `PE`, `PN`, `PO`, `PQ`, `PY`, `PZ`, `RB`, `RR`, `RT`, `RX`, `SG`, `V5`, `XP` - **`claimInformation.serviceLines[].serviceLineSupplementalInformations[].attachmentTransmissionCode`** (`string`) (required): Code indicating the method by which the attachment was transmitted. Can be set to `AA` - Available on Request at Provider Site, `BM` - By Mail, `EL` - Electronically Only, `EM` - E-Mail, `FT` - File Transfer, or `FX` - By Fax. - Allowed values: `AA`, `BM`, `EL`, `EM`, `FT`, `FX` - **`claimInformation.serviceLines[].serviceTaxAmount`** (`string`): The amount of the service tax or surcharge, formatted as a decimal. Required when a service tax or surcharge applies to the service being reported. The `claimInformation.serviceLines[].institutionalService.lineItemChargeAmount` must include the amount you report here. - **`claimInformation.serviceLines[].thirdPartyOrganizationNotes`** (`string`): To provide additional information for comment or special instruction. Required when the TPO/repricer needs to forward additional information to the payer. - **`claimInformation.signatureIndicator`** (`string`) - **`claimInformation.treatmentCodeInformationList`** (`array of arrays`): Required when Home Health Agencies need to report Plan of Treatment information under various payer contracts. This is an array of arrays of strings. You can provide up to two string arrays, and each array can contain up to 12 strings. Each string represents one treatment code. - **`claimInformation.valueInformationList`** (`array of arrays`): Required when there is a Value Code that applies to this claim. This is an array of arrays of objects. You can provide up to two object arrays, and each array can contain up to 12 objects. - **`controlNumber`** (`string`): Not currently used. - **`dependent`** (`object`) - **`dependent.address`** (`object`) - **`dependent.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`dependent.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`dependent.address.city`** (`string`) (required): The city name. - **`dependent.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`dependent.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`dependent.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`dependent.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`dependent.dateOfBirth`** (`string`) (required): The patient's date of birth, formatted as `YYYYMMDD`. - **`dependent.firstName`** (`string`) (required): The patient's first name. - **`dependent.gender`** (`string`) (required) - Allowed values: `M`, `F`, `U` - **`dependent.lastName`** (`string`) (required): The patient's last name. **Don't** include the patient's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`dependent.middleName`** (`string`): The patient's middle name or initial. - **`dependent.relationshipToSubscriberCode`** (`string`) (required): Identifies the relationship of the patient to the subscriber. Can be set to `01` - Spouse, `19` - Child, `20` - Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8` - **`dependent.ssn`** (`string`): The patient's Social Security Number. Only used for Property and Casualty claims. - **`dependent.suffix`** (`string`): The patient's name suffix, such as Jr. or III. Only include the patient's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`operatingPhysician`** (`object`) - **`operatingPhysician.firstName`** (`string`): The physician's first name. - **`operatingPhysician.identificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`operatingPhysician.lastName`** (`string`) (required): The physician's last name. - **`operatingPhysician.middleName`** (`string`): The physician's middle name or initial. - **`operatingPhysician.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the physician. - **`operatingPhysician.organizationName`** (`string`): The physician's business name. - **`operatingPhysician.secondaryIdentifier`** (`string`): The identifier specified in `identificationQualifierCode`. You can only include one secondary identifier for the provider. - **`operatingPhysician.suffix`** (`string`): The physician's name suffix, such as Jr. or III. - **`otherOperatingPhysician`** (`object`) - **`otherOperatingPhysician.firstName`** (`string`): The physician's first name. - **`otherOperatingPhysician.identificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`otherOperatingPhysician.lastName`** (`string`) (required): The physician's last name. - **`otherOperatingPhysician.middleName`** (`string`): The physician's middle name or initial. - **`otherOperatingPhysician.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the physician. - **`otherOperatingPhysician.organizationName`** (`string`): The physician's business name. - **`otherOperatingPhysician.secondaryIdentifier`** (`string`): The identifier specified in `identificationQualifierCode`. You can only include one secondary identifier for the provider. - **`otherOperatingPhysician.suffix`** (`string`): The physician's name suffix, such as Jr. or III. - **`payerAddress`** (`object`) - **`payerAddress.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payerAddress.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payerAddress.city`** (`string`) (required): The city name. - **`payerAddress.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`payerAddress.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`payerAddress.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`payerAddress.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`providers`** (`array of InstitutionalProvidersObject objects`): Another way to send information for each provider relevant to the claim. This object overwrites the information you send in the `billing`, `referring`, `rendering`, and `attending` objects. Note that your request **must** include information about the billing provider either here or within the `billing` object. - **`providers[].address`** (`object`) - **`providers[].address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`providers[].address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`providers[].address.city`** (`string`) (required): The city name. - **`providers[].address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`providers[].address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`providers[].address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`providers[].address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`providers[].contactInformation`** (`object`) - **`providers[].contactInformation.email`** (`string`): The email address. - **`providers[].contactInformation.faxNumber`** (`string`): The fax number. - **`providers[].contactInformation.name`** (`string`) (required): The full name of the person or office. - **`providers[].contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`providers[].contactInformation.validContact`** (`boolean`) - **`providers[].employerId`** (`string`): The provider's employer ID, also known as an EIN or TIN. Must be a string of exactly nine numbers with no separators. This is **required** for the billing provider, and doesn’t apply to other provider types. - **`providers[].firstName`** (`string`): The provider's first name. - **`providers[].lastName`** (`string`): The provider's last name. - **`providers[].middleName`** (`string`): The provider's middle name or initial. - **`providers[].npi`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) of the provider. Note that this is **required** for billing providers that have an NPI assigned. - **`providers[].organizationName`** (`string`): The provider's business name, when the provider is not an individual. - **`providers[].providerType`** (`string`) (required) - Allowed values: `BillingProvider`, `AttendingProvider`, `ReferringProvider`, `RenderingProvider` - **`providers[].secondaryIdentificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`providers[].secondaryIdentifier`** (`string`): The identifier referenced by `secondaryIdentificationQualifierCode`. For example, if `secondaryIdentificationQualifierCode` is set to `0B`, this property should be the provider's state license number. You can only include one secondary identifier for the provider. - **`providers[].suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`providers[].taxonomyCode`** (`string`): The provider's [taxnonomy code](https://www.cms.gov/medicare/enrollment-renewal/providers-suppliers/health-care-taxonomy), a unique 10-character code that designates their classification and specialization. Only applies to the attending provider. - **`receiver`** (`object`) (required): The entity responsible for the payment of the claim, such as an insurance company or government agency. - **`receiver.organizationName`** (`string`) (required): The business name of the payer receiving the claim, such as Aetna or Cigna. - **`receiver.receiverId`** (`string`): Set to `PAPER` when you want Stedi to print this claim and mail it to the payer. Omit otherwise. Visit [Submit paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims) for details. - **`receiver.taxId`** (`string`): The receiver's Electronic Transmitter Identification Number (ETIN), as assigned by the payer. This may be the same as the payer's TIN, but it can also be another unique identifier. We **strongly recommend** including this property in your request. - **`referring`** (`object`): Information about the provider who referred the patient for care. - Include this object only when the referring provider is different than the provider listed in the `attending` object. - Use this object for providers that apply to the entire claim. - This should be an individual, not an organization, and you should supply at least the provider's `lastName` and an identifier, which is typically the `npi`. - **`referring.address`** (`object`) - **`referring.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`referring.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`referring.address.city`** (`string`) (required): The city name. - **`referring.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`referring.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`referring.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`referring.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`referring.commercialNumber`** (`string`) - **`referring.contactInformation`** (`object`) - **`referring.contactInformation.email`** (`string`): The email address. - **`referring.contactInformation.faxNumber`** (`string`): The fax number. - **`referring.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`referring.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`referring.contactInformation.validContact`** (`boolean`) - **`referring.employerId`** (`string`) - **`referring.firstName`** (`string`): The provider's first name. - **`referring.lastName`** (`string`) (required): The provider's last name. - **`referring.locationNumber`** (`string`) - **`referring.middleName`** (`string`): The provider's middle name or initial. - **`referring.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`referring.organizationName`** (`string`): The provider's business name. - **`referring.providerType`** (`string`): Defines the referring provider type. - Allowed values: `ReferringProvider` - **`referring.providerUpinNumber`** (`string`) - **`referring.secondaryIdentificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, or `G2` - Provider Commercial Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2` - **`referring.secondaryIdentifier`** (`string`): The identifier specified in `secondaryIdentifierQualifierCode`. You can only include one secondary identifier for the provider. - **`referring.stateLicenseNumber`** (`string`) - **`referring.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`referring.taxonomyCode`** (`string`) - **`rendering`** (`object`): Information about the provider who delivered the medical services or non-surgical procedures listed in the claim. This must be an individual, not an organization, and you must supply at least the provider's `lastName` and an identifier, which is typically the `npi`. The provider's `firstName` is also required, if applicable. Include this object when all of the following are true: - The rendering provider is different than the provider listed in the `attending` object. - The provider applies to the entire claim or to at least one service line. For example, if a claim had two service lines with two different rendering providers, you would include the provider for the first service line here and leave the `claimInformation.serviceLines[].renderingProvider` object for that service line blank. Then, you would specify the second provider in the appropriate service line's `claimInformation.serviceLines[].renderingProvider` object. - State or federal regulatory requirements call for a combined claim. A combined claim includes both facility and professional components, such as a Medicaid clinic bill or a critical access hospital claim. - **`rendering.address`** (`object`) - **`rendering.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`rendering.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`rendering.address.city`** (`string`) (required): The city name. - **`rendering.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`rendering.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`rendering.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`rendering.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`rendering.commercialNumber`** (`string`): The provider's commercial number. - **`rendering.contactInformation`** (`object`) - **`rendering.contactInformation.email`** (`string`): The email address. - **`rendering.contactInformation.faxNumber`** (`string`): The fax number. - **`rendering.contactInformation.name`** (`string`) (required): The full name of the person or office. - **`rendering.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`rendering.contactInformation.validContact`** (`boolean`) - **`rendering.employerId`** (`string`) - **`rendering.firstName`** (`string`): The provider's first name. - **`rendering.lastName`** (`string`) (required): The provider's last name. - **`rendering.locationNumber`** (`string`): The provider's location number. - **`rendering.middleName`** (`string`): The provider's middle name or initial. - **`rendering.npi`** (`string`): The individual [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned to the provider. - **`rendering.organizationName`** (`string`): The provider's business name. - **`rendering.providerType`** (`string`): This field is now automatically populated and it only remains for backwards compatibility. - **`rendering.providerUpinNumber`** (`string`) - **`rendering.secondaryIdentificationQualifierCode`** (`string`): The type of identifier used in `secondaryIdentifier`. Can be set to `0B` - State License Number, `1G` - Provider UPIN Number, `G2` - Provider Commercial Number, or `LU` - Location Number. Note that UPIN is deprecated and should not be used. - Allowed values: `0B`, `1G`, `G2`, `LU` - **`rendering.secondaryIdentifier`** (`string`): The identifier specified in the `secondaryIdentificationQualifierCode`. You can only include one secondary identifier for the provider. - **`rendering.stateLicenseNumber`** (`string`): The provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used. - **`rendering.suffix`** (`string`): The provider's name suffix, such as Jr. or III. - **`rendering.taxonomyCode`** (`string`) - **`submitter`** (`object`) (required): The entity submitting the healthcare claim. This is an organization, such as a hospital or other treatment center. - **`submitter.contactInformation`** (`object`) (required) - **`submitter.contactInformation.email`** (`string`): The email address. - **`submitter.contactInformation.faxNumber`** (`string`): The fax number. - **`submitter.contactInformation.name`** (`string`): The full name of the person or office. - **`submitter.contactInformation.phoneNumber`** (`string`): The phone number, formatted as AAABBBCCCC, where AAA represents the area code, BBB is the telephone number prefix, and CCCC is the telephone number. The phone number should only include the digits 0 to 9. Don't include separators, such as dashes, and don't include long distance access numbers, such as 1. For example, you would format the phone number 123-456-7890 as 1234567890. - **`submitter.contactInformation.validContact`** (`boolean`) - **`submitter.organizationName`** (`string`) (required): The business name of the institution submitting the claim. - **`submitter.taxId`** (`string`) (required): The submitter's Electronic Transmitter Identification Number (ETIN), **as assigned by the payer**. For some payers, this may be the same as the submitter's NPI, EIN/TIN, but it can also be another unique identifier. Payers can refer to this identifier as the Provider Number, Submitter ID, Submitter Identifier, Submitter Primary Number, Sender Code, Certified Contracted Provider ID, and other names. - **`subscriber`** (`object`) (required): The person or entity who is the primary policyholder for the health plan _or_ a dependent with their own member ID. - When a dependent has a unique, payer-assigned member ID, treat them as the subscriber for the claim submission - include their information here and omit the `dependent` object from the request. - You must set the `dateOfBirth` and `gender` properties when the subscriber is the patient. Stedi determines that the subscriber is the patient when the `dependent` object is not included in the request. - If either `dateOfBirth` or `gender` is set, you must include both properties. You can either include both properties or neither within a single request. - You must include `address` in this object when the patient is the subscriber. If the patient is a dependent, include address information in the `dependent` object instead. - **`subscriber.address`** (`object`) - **`subscriber.address.address1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`subscriber.address.address2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`subscriber.address.city`** (`string`) (required): The city name. - **`subscriber.address.countryCode`** (`string`): Use the alpha-2 country codes from Part 1 of ISO 3166. - **`subscriber.address.countrySubDivisionCode`** (`string`): Use the country subdivision codes from Part 2 of ISO 3166. - **`subscriber.address.postalCode`** (`string`): The postal zone or zip code. For United States addresses, you must include the full nine-digit zip code with no separators, such as `100031502`. If you don't know the full zip code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. Exclude punctuation and spaces. - **`subscriber.address.state`** (`string`): The state or province code. Only required when the city is in the United States and Canada. - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth, formatted as `YYYYMMDD`. - **`subscriber.firstName`** (`string`): The subscriber's first name. This property is **recommended** when the subscriber is an individual. Omit when the subscriber is an organization. Some payers reject requests without the `firstName` property. - **`subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`subscriber.groupNumber`** (`string`): The subscriber's health plan group number. - **`subscriber.lastName`** (`string`): The subscriber's last name. This property is **required** if the subscriber is an individual. Omit when the subscriber is an organization. **Don't** include the subscriber's name suffix, such as Jr. or III. Use the designated `suffix` property instead. - **`subscriber.memberId`** (`string`): The member ID for the subscriber's insurance policy. - **`subscriber.middleName`** (`string`): The subscriber's middle name or initial. - **`subscriber.organizationName`** (`string`): The business name of the entity submitting the claim. This is **required** when the subscriber is an organization. When the subscriber is an organization, you should identify the patient in the `dependent` object. - **`subscriber.paymentResponsibilityLevelCode`** (`string`) (required): The payer's level of responsibility for paying this claim. Can be set to `A` - Payer Responsibility Four, `B` - Payer Responsibility Five, `C` - Payer Responsibility Six, `D` - Payer Responsibility Seven, `E` - Payer Responsibility Eight, `F` - Payer Responsibility Nine, `G` - Payer Responsibility Ten, `H` - Payer Responsibility Eleven, `P` - Primary, `S` - Secondary, `T` Tertiary, or `U` - Unknown (only use in payer-to-payer COB claims). - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `P`, `S`, `T`, `U` - **`subscriber.policyNumber`** (`string`): Deprecated. - **`subscriber.ssn`** (`string`): The subscriber's Social Security Number. This must be a string of exactly nine numbers with no separators. For example, `123456789`. - **`subscriber.standardHealthId`** (`string`): Deprecated. Use the `memberId` property instead. - **`subscriber.suffix`** (`string`): The subscriber's name suffix, such as Jr. or III. Only include the subscriber's personal name suffix - **don't** include professional or academic titles, such as M.D. or MBA. - **`tradingPartnerName`** (`string`): This is the payer's business name, like Cigna or Aetna. - **`tradingPartnerSecondaryIdentifiers`** (`object`): Secondary identifiers for the payer. You can include up to three properties in this object. - **`tradingPartnerSecondaryIdentifiers.claimOfficeNumber`** (`string`): Claim Office Number. - **`tradingPartnerSecondaryIdentifiers.employerIdentificationNumber`** (`string`): Employer Identification Number. This must be a string of exactly nine numbers with no separators. - **`tradingPartnerSecondaryIdentifiers.naic`** (`string`): National Association of Insurance Commissioners (NAIC) Code. - **`tradingPartnerSecondaryIdentifiers.payerIdentificationNumber`** (`string`): Payer Identification Number. This shape is deprecated since 1/9/25. - **`tradingPartnerServiceId`** (`string`) (required): The payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading `0` characters - payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`usageIndicator`** (`string`): Whether you want to send a test or production claim. This property also allows you to filter claims in the Stedi portal by production or test data. By default, this property is set to `P` for production data. Use `T` to designate a claim as test data. **Example:** ```json { "claimInformation": { "benefitsAssignmentCertificationIndicator": "Y", "claimChargeAmount": "500.00", "claimCodeInformation": { "admissionSourceCode": "9", "admissionTypeCode": "3", "patientStatusCode": "30" }, "claimDateInformation": { "admissionDateAndHour": "202409091000", "statementBeginDate": "20241015", "statementEndDate": "20241015" }, "claimFilingCode": "ZZ", "claimFrequencyCode": "0", "patientControlNumber": "", "placeOfServiceCode": "11", "planParticipationCode": "C", "principalDiagnosis": { "principalDiagnosisCode": "R45851", "qualifierCode": "ABK" }, "releaseInformationCode": "Y", "serviceLines": [ { "assignedNumber": "0", "institutionalService": { "lineItemChargeAmount": "500.00", "measurementUnit": "UN", "procedureCode": "H0001", "procedureIdentifier": "HC", "serviceLineRevenueCode": "0800", "serviceUnitCount": "1" }, "lineItemControlNumber": "111222333", "serviceDate": "20241015", "serviceDateEnd": "20241015" } ] }, "controlNumber": "123456789", "providers": [ { "address": { "address1": "123 Mulberry Street", "city": "Seattle", "postalCode": "111135272", "state": "WA" }, "contactInformation": { "name": "Test Facility", "phoneNumber": "2065551234" }, "employerId": "123456789", "npi": "1999999976", "organizationName": "Test Facility", "providerType": "BillingProvider" }, { "contactInformation": { "name": "name" }, "firstName": "Doctor", "lastName": "Provider", "npi": "1999999976", "providerType": "AttendingProvider" } ], "receiver": { "organizationName": "UnitedHealthcare" }, "submitter": { "contactInformation": { "name": "Test Facility", "phoneNumber": "2225551234" }, "organizationName": "Test Facility", "taxId": "123456789" }, "subscriber": { "address": { "address1": "1234 Some St", "city": "Buckeye", "postalCode": "85326", "state": "AZ" }, "dateOfBirth": "19000101", "firstName": "JANE", "gender": "F", "lastName": "DOE", "memberId": "98765", "paymentResponsibilityLevelCode": "P" }, "tradingPartnerName": "UnitedHealthcare", "tradingPartnerServiceId": "87726", "usageIndicator": "T" } ``` ### Responses #### 200 InstitutionalClaimsSubmission 200 response **Schema:** `InstitutionalClaimsSubmissionResponseContent` **Properties:** - **`claimReference`** (`object`): Information about the claim. - **`claimReference.claimType`** (`string`): The type of claim, always `INST`. - **`claimReference.correlationId`** (`string`): An identifier Stedi assigns to the claim. - **`claimReference.customerClaimNumber`** (`string`): A tracking number that Stedi assigns to the claim. - **`claimReference.formatVersion`** (`string`): The X12 EDI version Stedi used to generate the claim for the payer. This is always `5010`. - **`claimReference.patientControlNumber`** (`string`): The `patientControlNumber` from the original request, if supplied. This is a unique identifier that you assign to the claim so you can track the claim and correlate it with responses from the payer. - **`claimReference.payerId`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`claimReference.rhClaimNumber`** (`string`): A tracking number Stedi assigns to the claim. This is the same as the `correlationId`. - **`claimReference.serviceLines`** (`array of ServiceLineResponseIdentifier objects`): Contains a unique identifier for each service line, listed in the order the service lines were included in the claim. You can use these identifiers to correlate payer responses to specific service lines. - **`claimReference.serviceLines[].lineItemControlNumber`** (`string`): A unique identifier for the service line, matching the value provided for the `claimInformation.serviceLines[].providerControlNumber` property in the claim submission. If you didn't provide a value for `providerControlNumber`, this property contains a randomly generated ULID for the service line. - **`claimReference.submitterId`** (`string`): Stedi's ID for the entity that submitted the claim. - **`claimReference.timeOfResponse`** (`string`): A timestamp for Stedi's response to the claim submission. - **`controlNumber`** (`string`): An identifier for the transaction. - **`editResponses`** (`array of EditResponse objects`): Currently not used. - **`editResponses[].allowOverride`** (`string`) - **`editResponses[].badData`** (`string`) - **`editResponses[].claimCorePath`** (`string`) - **`editResponses[].editActivity`** (`string`) - **`editResponses[].editName`** (`string`) - **`editResponses[].element`** (`string`) - **`editResponses[].errorDescription`** (`string`) - **`editResponses[].fieldIndex`** (`string`) - **`editResponses[].loop`** (`string`) - **`editResponses[].phaseID`** (`string`) - **`editResponses[].qualifierCode`** (`string`) - **`editResponses[].referenceID`** (`string`) - **`editResponses[].segment`** (`string`) - **`editStatus`** (`string`): This shape is deprecated: Currently not used. - **`errors`** (`array of InstitutionalError objects`): Errors resulting from claim edits. You must review and fix these errors before resubmitting. - **`errors[].code`** (`string`): The error code. - **`errors[].description`** (`string`): The description of the error code. - **`errors[].followupAction`** (`string`): Recommended followup actions to correct the error. - **`errors[].location`** (`string`): Where the error is located in the original request. - **`errors[].value`** (`string`): The value for the data causing the error. - **`failure`** (`object`): Currently not used. - **`failure.code`** (`string`) - **`failure.description`** (`string`) - **`httpStatusCode`** (`string`): Stedi can return the following status codes: - `200`: Stedi successfully generated the X12 EDI claim format required by the payer. It does not indicate whether the payer has accepted the claim - the payer will respond later with a 277CA containing this information. [Learn more about 277CAs](https://www.stedi.com/docs/healthcare/receive-claim-responses#response-types). - `400`: The request contains one or more problems with the claim data. Examples include missing required fields, invalid values, or incorrect data types. The response includes a message describing the problem. - `403`: The request is not permitted, such as using a test API key to submit a production transaction. - Allowed values: `200 OK`, `400 BAD_REQUEST`, `403 FORBIDDEN` - **`meta`** (`object`): Metadata from Stedi about the request. - **`meta.applicationMode`** (`string`): Indicates where this request can be found for support. - **`meta.billerId`** (`string`): The biller ID assigned to this request. - **`meta.senderId`** (`string`): The sender ID assigned to this request. - **`meta.submitterId`** (`string`): The submitter ID assigned to this request. - **`meta.traceId`** (`string`): The file execution ID, a unique identifier assigned to the processed file within the Stedi platform. - **`payer`** (`object`): Information about the payer for the submitted claim. - **`payer.payerID`** (`string`): The payer's ID. This is the same as the `tradingPartnerServiceId`. - **`payer.payerName`** (`string`): The payer's business name, such as Aetna or Cigna. - **`status`** (`string`): The status of the claim submission. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the original claim. This value may differ from the `tradingPartnerServiceId` you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. - **`warnings`** (`array of ClaimsWarning objects`): A list of warnings. Currently not used. - **`warnings[].code`** (`string`): A machine-readable code indicating the type of problem. - **`warnings[].description`** (`string`): A human-readable description of the problem. - **`x12`** (`string`): A [277CA claim acknowledgment](https://www.stedi.com/docs/healthcare/claim-responses-overview#277ca-claim-acknowledgment) acceptance or rejection from Stedi in X12 EDI format. It indicates whether the claim has passed Stedi's claim edits. When the claim fails one or more edits, the 277CA contains `STC` segments with information about each error. These are the same error codes that appear in the `errors` array. Note that this 277CA only indicates whether Stedi has accepted or rejected the claim submission. You may receive additional 277CA acceptances or rejections as the claim is routed to the payer. **Example:** ```json { "claimReference": { "claimType": "INST", "correlationId": "01JABEX6DPF4FCT2J0Y0SGFCY8", "formatVersion": "5010", "patientControlNumber": "00001111222233334444", "payerId": "87726", "rhClaimNumber": "01JABEX6DPF4FCT2J0Y0SGFCY8", "serviceLines": [ { "lineItemControlNumber": "111222333" } ], "timeOfResponse": "2024-10-16T20:04:32.962Z" }, "controlNumber": "123456789", "httpStatusCode": "200 OK", "meta": { "traceId": "a742ab42-a6f3-4232-a88c-197d341afdbe" }, "payer": { "payerID": "87726", "payerName": "UnitedHealthcare" }, "status": "SUCCESS", "tradingPartnerServiceId": "87726", "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*2001*^*00501*929135779*0*T*>~GS*HN*STEDITEST*574183004559*20260213*200134*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC9GC66KDRVHEJC42Q103EQ*20260213*200134*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC9GC66KDRVHEJC42Q103EQ~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Facility*****46*123456789~TRN*2*01KHC9G8FMGZ6CA9TQT704RAMB~STC*A0>17>AY*20260213*WQ*500.0~QTY*90*1~AMT*YU*500.0~HL*3*2*19*1~NM1*85*2*Test Facility*****XX*1999999976~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*500.0~HL*4*3*PT*0~NM1*QC*1*DOE*JANE****MI*98765~TRN*2*12345~STC*A1>20*20260213*WQ*500.0~DTP*472*RD8*20241015-20241015~SE*25*0001~GE*1*1~IEA*1*929135779~" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 409 ConflictException 409 response **Schema:** `ConflictExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 422 RequestChangedException 422 response **Schema:** `RequestChangedExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of error. - **`message`** (`string`) (required): Human readable error message explaining why the request was rejected. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Submit Claim Attachment (275) Raw X12 Source: https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12 This endpoint is in **beta** and is subject to change. This endpoint is ideal if you have an existing system that generates X12 EDI files and you want to send them through Stedi's API. 1. Call this endpoint with a payload in [275 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/patient-information-x210/01HQ4HZ8ZBY2CZGPCVVM8JTK22). 2. Stedi sends the attachment to the payer, so the payer can use it to adjudicate the referenced 837 professional, dental, or institutional claim. 3. The endpoint returns summary information about the attachment submission. This endpoint only supports [unsolicited attachments](/healthcare/submit-claim-attachments#solicited-vs-unsolicited-attachments). ## Paper claims [#paper-claims] This endpoint doesn't support attachments for [paper claims](/healthcare/submit-paper-claims). To send a paper claim with attachments, use the JSON claim submission endpoints with an attachment you create through [Create Claim Attachment (275) JSON](/healthcare/api-reference/post-healthcare-create-claim-attachment), or use SFTP. ## Size limit [#size-limit] The size limit for attachments submitted in a single request is 6MB. If you need to submit larger attachments, you must submit them through [Stedi SFTP](/healthcare/submit-claims-sftp-connection) or the [JSON endpoints](/healthcare/api-reference/post-healthcare-create-claim-attachment). ## API Specification Submit a 275 claim attachment in X12 EDI format **Endpoint:** `POST /claim-attachments/raw-x12-submission` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Request Body **Schema:** `SubmitClaimAttachmentRawX12RequestContent` **Properties:** - **`x12`** (`string`) (required): The X12 EDI data for the claim attachment. This data must conform to the [275 X12 EDI specification](https://portal.stedi.com/app/guides/view/hipaa/patient-information-x210/01HQ4HZ8ZBY2CZGPCVVM8JTK22). **Example:** ```json { "x12": "ISA*00* *00* *ZZ*STEDI *ZZ*CIGNA *250227*2140*^*00501*000000001*0*T*>~GS*PI*STEDI*CIGNA*20250227*214016*1*X*005010X210~ST*275*1001*005010X210~BGN*11*0001*20060915~NM1*PR*2*CIGNA*****XV*62308~NM1*41*2*XYZ SERVICES*****46*1999999976~NM1*1P*2*THE HOSPITAL*****XX*3999000B01~NX1*1P~N3*123 Main~N4*Miami*FL*11111~NM1*QC*1*DOE*JOHN*J***MI*987654320~REF*EJ*DOE123~REF*EA*AAAAA12345~DTP*472*D8*20060812~LX*1~TRN*2*1822634840~STC*R4>18626-2>>LOI~DTP*368*D8*20060915~CAT*AE*TX~EFI*05~BIN*8*U3RlZGk=~SE*20*1001~GE*1*1~IEA*1*000000001~" } ``` ### Responses #### 200 SubmitClaimAttachmentRawX12 200 response **Schema:** `SubmitClaimAttachmentRawX12ResponseContent` **Properties:** - **`claimAttachmentReference`** (`object`): Information about the claim attachment. - **`claimAttachmentReference.correlationId`** (`string`): An opaque string identifier Stedi assigns to the claim attachment. You can use it for tracking purposes and when contacting Stedi support. - **`claimAttachmentReference.patientControlNumber`** (`string`): The `patientControlNumber` from the claim associated with this attachment, if supplied. This is a unique identifier that you assigned to the related claim so you can track the claim and correlate it with responses from the payer. - **`claimAttachmentReference.timeOfResponse`** (`string`): A timestamp in [RFC 3339 format](https://datatracker.ietf.org/doc/html/rfc3339) for Stedi's response to the submission. For example: `2025-03-07T12:34:56Z`. - **`meta`** (`object`): Metadata from Stedi about the request. - **`meta.traceId`** (`string`): A unique identifier assigned to the processed file within the Stedi platform. This is also known as the file execution ID. - **`tradingPartnerServiceId`** (`string`): An ID for the payer you identified in the related transaction. This value may differ from the `tradingPartnerServiceId` you submitted in the original claim request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer. **Example:** ```json { "claimAttachmentReference": { "correlationId": "att-123456", "patientControlNumber": "PCN123456", "timeOfResponse": "2025-03-07T12:34:56Z" }, "meta": { "traceId": "4d2b3c4e-1111-4222-b333-5a6f7e8d9a00" }, "tradingPartnerServiceId": "PAYER123" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`fieldList`** (`array of ValidationExceptionField objects`): A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints. - **`fieldList[].message`** (`string`) (required): A detailed description of the validation failure. - **`fieldList[].path`** (`string`) (required): A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints. - **`message`** (`string`) (required): A summary of the validation failure. #### 403 SubmitClaimAttachmentRawX12403Error 403 response **Schema:** `SubmitClaimAttachmentRawX12403ErrorResponseContent` #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of resource not found error. - **`message`** (`string`) (required): Human readable error message explaining why the resource could not be found. #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message # Insurance Discovery Check Source: https://www.stedi.com/docs/healthcare/api-reference/post-insurance-discovery Insurance discovery checks search for a patient's active coverage using only their demographic data. Insurance discovery supports both medical and dental use cases. To scope the search to dental payers only, set `encounter.serviceTypeCodes` to `["35"]`. Otherwise, Stedi defaults to searching for medical coverage. 1. Call this endpoint with as much [patient demographic information](/healthcare/insurance-discovery#required-patient-information) as possible. 2. Stedi searches for active coverage for the patient. 3. The endpoint returns an array of potential active coverages along with subscriber details and benefits information. We recommend using insurance discovery checks as a backup when eligibility checks fail or aren't possible. They're only available for basic Health Benefit Plan Coverage (service type code `30`) or Dental Benefit Plan Coverage (service type code `35`), so don't rely on them as your primary method for verifying patient coverage. For example: If you're looking for specific psychotherapy visit benefits, send a subsequent eligibility check with a mental health service type code. ## API Specification Submit an insurance discovery check in JSON format **Endpoint:** `POST /insurance-discovery/check/v1` **Base URL:** `https://healthcare.us.stedi.com/2024-04-01` ### Request Body **Schema:** `InsuranceDiscoveryCheckRequestContent` **Properties:** - **`dependent`** (`object`): Demographic information for the patient when they are a dependent on a health plan. - We **strongly recommend** providing as much information as possible to improve the probability of finding matching coverage. We especially recommend including the dependent's Social Security Number and their address - particularly their state and, if known, their ZIP Code. - You should provide information for both the subscriber and the dependent in the request when possible. - If you only have the dependent's information, you should identify them in the `subscriber` object instead and leave this object empty. Note that some payers require information about both the dependent and the subscriber, so providing only the dependent's information limits Stedi's ability to return coverage matches for those payers. - **`dependent.address`** (`object`) - **`dependent.address.address1`** (`string`): The first line of the address. - **`dependent.address.address2`** (`string`): The second line of the address. - **`dependent.address.city`** (`string`): The city. - **`dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Insurance discovery supports US addresses only, so omit this field. This shape is deprecated: Insurance discovery supports US addresses only. Omit this field. - **`dependent.address.postalCode`** (`string`): The United States ZIP Code, excluding punctuation and blanks. Insurance discovery searches US coverage only. - **`dependent.address.state`** (`string`): The two-letter US state, territory, or military postal code. For example, `TN` for Tennessee. - Allowed values: `AL`, `AK`, `AZ`, `AR`, `CA`, `CO`, `CT`, `DE`, `DC`, `FL`, `GA`, `HI`, `ID`, `IL`, `IN`, `IA`, `KS`, `KY`, `LA`, `ME`, `MD`, `MA`, `MI`, `MN`, `MS`, `MO`, `MT`, `NE`, `NV`, `NH`, `NJ`, `NM`, `NY`, `NC`, `ND`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `WA`, `WV`, `WI`, `WY`, `AS`, `GU`, `MP`, `PR`, `VI`, `UM`, `FM`, `MH`, `PW`, `AA`, `AE`, `AP` - **`dependent.dateOfBirth`** (`string`): The dependent's date of birth (DOB), formatted as YYYYMMDD. - **`dependent.firstName`** (`string`) (required): The dependent's first name. - **`dependent.gender`** (`string`) - Allowed values: `M`, `F` - **`dependent.lastName`** (`string`) (required): The dependent's last name. - **`dependent.middleName`** (`string`): The dependent's middle name or initial. - **`dependent.ssn`** (`string`): The dependent's Social Security Number (SSN). - **Medical coverage:** The patient's full SSN is best, but even the last 4 digits of the SSN can help narrow down matching coverage. - **Dental coverage:** Providing the SSN is especially important. Many dental payers accept SSN in place of a member ID. When included, Stedi can search with additional dental carriers that accept SSN instead of member ID. If you don't have the subscriber's member ID but can include the SSN, Stedi is more likely to return active dental coverage. - **`encounter`** (`object`): Specify the date range and type of coverage. - Set either a single `dateOfService` or a `beginningDateOfService` and `endDateOfService`. If you don't specify a service date, Stedi defaults to the current date. - Set `serviceTypeCodes` to `["35"]` to narrow the search to dental payers. Omit it to default to searching medical payers. - **`encounter.beginningDateOfService`** (`string`): The beginning date, formatted as YYYYMMDD. - **`encounter.dateOfService`** (`string`): The date of service, formatted as YYYYMMDD. You can use this value to specify a single occasion. If you don't specify a service date (either a single day or a range of dates), Stedi defaults to the current date. - **`encounter.endDateOfService`** (`string`): The end date, formatted as YYYYMMDD. If you don't specify an end date, Stedi defaults to the same date as `beginningDateOfService`. - **`encounter.serviceTypeCodes`** (`array of strings`): A service type code (STC) to focus the coverage search. Currently supports codes `30` (Health Benefit Plan Coverage) and `35` (Dental Care). If empty, Stedi defaults to code `30`. Stedi limits the coverage search to payers that support this STC. For example, if you submit `35`, Stedi only searches and returns results for payers that support dental use cases. - **`provider`** (`object`) (required): Information about the provider requesting the insurance discovery check. - **`provider.npi`** (`string`) (required): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`subscriber`** (`object`) (required): Demographic information for the patient when they are the health plan subscriber. We strongly recommend providing as much information as possible to improve the probability of finding matching coverage. We especially recommend including the subscriber's Social Security Number and their address - particularly their state and, if known, their ZIP Code. - **`subscriber.address`** (`object`) - **`subscriber.address.address1`** (`string`): The first line of the address. - **`subscriber.address.address2`** (`string`): The second line of the address. - **`subscriber.address.city`** (`string`): The city. - **`subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Insurance discovery supports US addresses only, so omit this field. This shape is deprecated: Insurance discovery supports US addresses only. Omit this field. - **`subscriber.address.postalCode`** (`string`): The United States ZIP Code, excluding punctuation and blanks. Insurance discovery searches US coverage only. - **`subscriber.address.state`** (`string`): The two-letter US state, territory, or military postal code. For example, `TN` for Tennessee. - Allowed values: `AL`, `AK`, `AZ`, `AR`, `CA`, `CO`, `CT`, `DE`, `DC`, `FL`, `GA`, `HI`, `ID`, `IL`, `IN`, `IA`, `KS`, `KY`, `LA`, `ME`, `MD`, `MA`, `MI`, `MN`, `MS`, `MO`, `MT`, `NE`, `NV`, `NH`, `NJ`, `NM`, `NY`, `NC`, `ND`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `WA`, `WV`, `WI`, `WY`, `AS`, `GU`, `MP`, `PR`, `VI`, `UM`, `FM`, `MH`, `PW`, `AA`, `AE`, `AP` - **`subscriber.dateOfBirth`** (`string`): The subscriber's date of birth (DOB), formatted as YYYYMMDD. - **`subscriber.firstName`** (`string`) (required): The subscriber's first name. - **`subscriber.gender`** (`string`) - Allowed values: `M`, `F` - **`subscriber.lastName`** (`string`) (required): The subscriber's last name. - **`subscriber.middleName`** (`string`): The subscriber's middle name or initial. - **`subscriber.ssn`** (`string`): The subscriber's Social Security Number (SSN). - **Medical coverage:** The patient's full SSN is best, but even the last 4 digits of the SSN can help narrow down matching coverage. - **Dental coverage:** Providing the SSN is especially important. Many dental payers accept SSN in place of a member ID. When included, Stedi can search with additional dental carriers that accept SSN instead of member ID. If you don't have the subscriber's member ID but can include the SSN, Stedi is more likely to return active dental coverage. **Example:** ```json { "encounter": { "beginningDateOfService": "20240326", "endDateOfService": "20240326" }, "provider": { "npi": "1999999984" }, "subscriber": { "address": { "address1": "123 Main St", "city": "Springfield", "postalCode": "62701", "state": "IL" }, "dateOfBirth": "19800101", "firstName": "John", "gender": "M", "lastName": "Smith", "middleName": "Robert", "ssn": "123456789" } } ``` ### Responses #### 200 Check complete **Schema:** `InsuranceDiscoveryCheckResponseContent` **Properties:** - **`coveragesFound`** (`integer`): The number of potential coverage matches for the patient. This is `0` if Stedi didn't find any matching coverage. - **`discoveryId`** (`string`): A unique ID for this insurance discovery check. You can use it to retrieve the results asynchronously through the [Insurance Discovery Check Results](https://www.stedi.com/docs/healthcare/api-reference/get-insurance-discovery-results) endpoint. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items`** (`array of InsuranceDiscoveryResponseFields objects`): An array of potential coverage matches for the patient. It contains items only when the insurance discovery check `status` is `COMPLETE`. Each item in the array contains information about a potential match, including the provider, subscriber, payer, and plan information. - **`items[].benefitsInformation`** (`array of DiscoveryBenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, copays, etc.), out of pocket maximums, and more. This is the same information you would get from a standard eligibility check. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) in our eligibility check documentation for more information about benefit types, details about how to interpret the response, and additional examples. - **`items[].benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`items[].benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`items[].benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`items[].benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`items[].benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`items[].benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`items[].benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`items[].benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`items[].benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`items[].benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`items[].benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`items[].benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`items[].benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`items[].benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`items[].benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`items[].benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`items[].benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`items[].benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`items[].benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`items[].benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`items[].benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`items[].benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`items[].benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`items[].benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`items[].benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`items[].benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`items[].benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`items[].benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`items[].benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`items[].benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`items[].confidence`** (`object`) - **`items[].confidence.level`** (`string`) - Allowed values: `REVIEW_NEEDED`, `HIGH` - **`items[].confidence.reason`** (`string`): A reason for the confidence level, if one is available. For example, `This record was identified as a low confidence match due to a DOB partial match`. Not always included in the response. - **`items[].dependent`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].dependent.address`** (`object`) - **`items[].dependent.address.address1`** (`string`): The first line of the address. - **`items[].dependent.address.address2`** (`string`): The second line of the address. - **`items[].dependent.address.city`** (`string`): The city. - **`items[].dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].dependent.dateOfBirth`** (`string`): The member's date of birth. - **`items[].dependent.dateTimePeriod`** (`string`): The military service date. - **`items[].dependent.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].dependent.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].dependent.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].dependent.endDateTimePeriod`** (`string`): The military service end date. - **`items[].dependent.entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`items[].dependent.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.firstName`** (`string`): The member's first name. - **`items[].dependent.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].dependent.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].dependent.groupDescription`** (`string`): Group name - **`items[].dependent.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].dependent.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].dependent.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].dependent.insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`items[].dependent.lastName`** (`string`): The member's last name. - **`items[].dependent.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].dependent.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].dependent.memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`items[].dependent.middleName`** (`string`): The member's middle name or initial. - **`items[].dependent.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].dependent.planDescription`** (`string`): Plan name - **`items[].dependent.planNetworkDescription`** (`string`): Plan network name - **`items[].dependent.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].dependent.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].dependent.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`items[].dependent.relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`items[].dependent.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].dependent.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].dependent.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].dependent.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].dependent.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependent.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependent.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependent.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependent.responseProvider.address`** (`object`) - **`items[].dependent.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].dependent.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].dependent.responseProvider.address.city`** (`string`): The city. - **`items[].dependent.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].dependent.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].dependent.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].dependent.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].dependent.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].dependent.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].dependent.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].dependent.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].dependent.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].dependent.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].dependent.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].dependent.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].dependent.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].dependent.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].dependent.startDateTimePeriod`** (`string`): The military service start date. - **`items[].dependent.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].dependent.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].payer`** (`object`) - **`items[].payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`items[].payer.contactInformation`** (`object`) - **`items[].payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].payer.contactInformation.name`** (`string`): The name of the contact person. - **`items[].payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`items[].payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`items[].payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`items[].payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`items[].payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`items[].payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`items[].payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`items[].payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].payer.payorIdentification`** (`string`): The payer identification. - **`items[].payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`items[].payerId`** (`string`): The primary payer ID for this payer in [Stedi’s Payer Network](https://www.stedi.com/healthcare/network). When empty, normalize the payer ID from `payer.payorIdentification`. - **`items[].planDateInformation`** (`object`) - **`items[].planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].planDateInformation.admission`** (`string`): The admission date or dates. - **`items[].planDateInformation.certification`** (`string`): The certification date. - **`items[].planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`items[].planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].planDateInformation.discharge`** (`string`): The discharge date. - **`items[].planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].planDateInformation.issue`** (`string`): The issue date. - **`items[].planDateInformation.plan`** (`string`): Plan effective dates. - **`items[].planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`items[].planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].planDateInformation.service`** (`string`): The service date or dates. - **`items[].planDateInformation.status`** (`string`): The status date. - **`items[].planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`items[].planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`items[].planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`items[].planInformation.caseNumber`** (`string`): The case number - **`items[].planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`items[].planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`items[].planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`items[].planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`items[].planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`items[].planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`items[].planInformation.eligibilityCategory`** (`string`): The eligibility category - **`items[].planInformation.facilityIdNumber`** (`string`): The facility ID number - **`items[].planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`items[].planInformation.familyUnitNumber`** (`string`): The family unit number - **`items[].planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`items[].planInformation.groupDescription`** (`string`): The group description - **`items[].planInformation.groupNumber`** (`string`): The group number - **`items[].planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`items[].planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`items[].planInformation.issueNumber`** (`string`): The issue number - **`items[].planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`items[].planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`items[].planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`items[].planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`items[].planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`items[].planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`items[].planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`items[].planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`items[].planInformation.planDescription`** (`string`): The plan description - **`items[].planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`items[].planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`items[].planInformation.planNumber`** (`string`): The plan number - **`items[].planInformation.policyNumber`** (`string`): The group or policy number - **`items[].planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`items[].planInformation.priorIdNumber`** (`string`): The prior identifier number - **`items[].planInformation.referralNumber`** (`string`): The referral number - **`items[].planInformation.socialSecurityNumber`** (`string`): The social security number - **`items[].planInformation.stateLicenseNumber`** (`string`): The state license number - **`items[].planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`items[].planInformation.userIdentification`** (`string`): The user identification - **`items[].provider`** (`object`) - **`items[].provider.address`** (`object`) - **`items[].provider.address.address1`** (`string`): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].provider.payorIdentification`** (`string`): The payer identification. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].provider.providerOrgName`** (`string`): The provider's organization name. - **`items[].provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].provider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].subscriber.address`** (`object`) - **`items[].subscriber.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`items[].subscriber.dateTimePeriod`** (`string`): The military service date. - **`items[].subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`items[].subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`items[].subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.firstName`** (`string`): The member's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].subscriber.groupDescription`** (`string`): Group name - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`items[].subscriber.lastName`** (`string`): The member's last name. - **`items[].subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`items[].subscriber.middleName`** (`string`): The member's middle name or initial. - **`items[].subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].subscriber.planDescription`** (`string`): Plan name - **`items[].subscriber.planNetworkDescription`** (`string`): Plan network name - **`items[].subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`items[].subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`items[].subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.responseProvider.address`** (`object`) - **`items[].subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.responseProvider.address.city`** (`string`): The city. - **`items[].subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.traceId`** (`string`): The unique ID Stedi assigns to this request. - **`status`** (`string`) - Allowed values: `PENDING`, `COMPLETE`, `ERROR` - **`warnings`** (`array of Warning objects`): Issues with your insurance discovery check that may affect the results. For example, Stedi issues a warning when enrolling with a payer would improve the results for future requests. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. **Example:** ```json { "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "items": [ { "benefitsInformation": [ { "additionalInformation": [ { "description": "To determine if a prior authorization is required, please check the health plan's website." } ], "benefitsRelatedEntities": [ { "entityFirstname": "Jane", "entityIdentification": "XX", "entityIdentificationValue": "1234567890", "entityIdentifier": "Primary Care Provider", "entityName": "Dough", "entityType": "Person" } ], "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ] }, { "code": "1", "inPlanNetworkIndicator": "Not Applicable", "inPlanNetworkIndicatorCode": "W", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "1" ], "serviceTypes": [ "Medical Care" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "4" ], "serviceTypes": [ "Diagnostic X-Ray" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "5" ], "serviceTypes": [ "Diagnostic Lab" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "20", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "5" ], "serviceTypes": [ "Diagnostic Lab" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "5" ], "serviceTypes": [ "Diagnostic Lab" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "12" ], "serviceTypes": [ "Durable Medical Equipment Purchase" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "12" ], "serviceTypes": [ "Durable Medical Equipment Purchase" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "12" ], "serviceTypes": [ "Durable Medical Equipment Purchase" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "13" ], "serviceTypes": [ "Ambulatory Service Center Facility" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "13" ], "serviceTypes": [ "Ambulatory Service Center Facility" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "13" ], "serviceTypes": [ "Ambulatory Service Center Facility" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "18" ], "serviceTypes": [ "Durable Medical Equipment Rental" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "18" ], "serviceTypes": [ "Durable Medical Equipment Rental" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "18" ], "serviceTypes": [ "Durable Medical Equipment Rental" ] }, { "additionalInformation": [ { "description": "Limited to 26 visits per year (visits in excess of 26 require prior authorization)." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "33" ], "serviceTypes": [ "Chiropractic" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "33" ], "serviceTypes": [ "Chiropractic" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "33" ], "serviceTypes": [ "Chiropractic" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "48" ], "serviceTypes": [ "Hospital - Inpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "48" ], "serviceTypes": [ "Hospital - Inpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "48" ], "serviceTypes": [ "Hospital - Inpatient" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "50" ], "serviceTypes": [ "Hospital - Outpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "50" ], "serviceTypes": [ "Hospital - Outpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "50" ], "serviceTypes": [ "Hospital - Outpatient" ] }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "51" ], "serviceTypes": [ "Hospital - Emergency Accident" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "52" ], "serviceTypes": [ "Hospital - Emergency Medical" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "53" ], "serviceTypes": [ "Hospital - Ambulatory Surgical" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "53" ], "serviceTypes": [ "Hospital - Ambulatory Surgical" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "53" ], "serviceTypes": [ "Hospital - Ambulatory Surgical" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "62" ], "serviceTypes": [ "MRI/CAT Scan" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "62" ], "serviceTypes": [ "MRI/CAT Scan" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "62" ], "serviceTypes": [ "MRI/CAT Scan" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "65" ], "serviceTypes": [ "Newborn Care" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "65" ], "serviceTypes": [ "Newborn Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "65" ], "serviceTypes": [ "Newborn Care" ] }, { "additionalInformation": [ { "description": "Covered in accordance with ACA guidelines." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "68" ], "serviceTypes": [ "Well Baby Care" ] }, { "benefitAmount": "0", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "68" ], "serviceTypes": [ "Well Baby Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "68" ], "serviceTypes": [ "Well Baby Care" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "69" ], "serviceTypes": [ "Maternity" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "69" ], "serviceTypes": [ "Maternity" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "69" ], "serviceTypes": [ "Maternity" ] }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "86" ], "serviceTypes": [ "Emergency Services" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "88" ], "serviceTypes": [ "Pharmacy" ] }, { "additionalInformation": [ { "description": "per prescription" } ], "benefitAmount": "10", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "88" ], "serviceTypes": [ "Pharmacy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "88" ], "serviceTypes": [ "Pharmacy" ] }, { "additionalInformation": [ { "description": "PCP" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "per visit" }, { "description": "PCP" } ], "benefitAmount": "15", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "PCP" } ], "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "Specialist" }, { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "per visit" }, { "description": "Specialist" } ], "benefitAmount": "30", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Specialist" } ], "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "98" ], "serviceTypes": [ "Professional (Physician) Visit - Office" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit. (Primary Care Provider (PCP) and other practitioner office visits do not require prior authorization.) Note| Services (excluding Emergency Room Care / Emergency Services) rendered by an out-of-network provider" } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A4" ], "serviceTypes": [ "Psychiatric" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A4" ], "serviceTypes": [ "Psychiatric" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A4" ], "serviceTypes": [ "Psychiatric" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A7" ], "serviceTypes": [ "Psychiatric - Inpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A7" ], "serviceTypes": [ "Psychiatric - Inpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A7" ], "serviceTypes": [ "Psychiatric - Inpatient" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A8" ], "serviceTypes": [ "Psychiatric - Outpatient" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A8" ], "serviceTypes": [ "Psychiatric - Outpatient" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "A8" ], "serviceTypes": [ "Psychiatric - Outpatient" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AD" ], "serviceTypes": [ "Occupational Therapy" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AD" ], "serviceTypes": [ "Occupational Therapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AD" ], "serviceTypes": [ "Occupational Therapy" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AF" ], "serviceTypes": [ "Speech Therapy" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AF" ], "serviceTypes": [ "Speech Therapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AF" ], "serviceTypes": [ "Speech Therapy" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Limited to 150 days per year." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AG" ], "serviceTypes": [ "Skilled Nursing Care" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AG" ], "serviceTypes": [ "Skilled Nursing Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "AG" ], "serviceTypes": [ "Skilled Nursing Care" ] }, { "additionalInformation": [ { "description": "Covered in accordance with ACA guidelines." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "BZ" ], "serviceTypes": [ "Physician Visit - Office: Well" ] }, { "benefitAmount": "0", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "BZ" ], "serviceTypes": [ "Physician Visit - Office: Well" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "BZ" ], "serviceTypes": [ "Physician Visit - Office: Well" ] }, { "additionalInformation": [ { "description": "Prior authorization may be required. Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "MH" ], "serviceTypes": [ "Mental Health" ] }, { "benefitPercent": "0.5", "code": "A", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Insurance", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "MH" ], "serviceTypes": [ "Mental Health" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "MH" ], "serviceTypes": [ "Mental Health" ] }, { "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "PT" ], "serviceTypes": [ "Physical Therapy" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "15", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "PT" ], "serviceTypes": [ "Physical Therapy" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "code": "I", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Non-Covered", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "PT" ], "serviceTypes": [ "Physical Therapy" ] }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "10", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "additionalInformation": [ { "description": "Covered No Limit." } ], "code": "1", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Active Coverage", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ] }, { "additionalInformation": [ { "description": "per visit" } ], "benefitAmount": "10", "code": "B", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Co-Payment", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "UC" ], "serviceTypes": [ "Urgent Care" ], "timeQualifier": "Visit", "timeQualifierCode": "27" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "C", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Deductible", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "3000", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "2000", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "6000", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "5000", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "Yes", "inPlanNetworkIndicatorCode": "Y", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Individual", "coverageLevelCode": "IND", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Calendar Year", "timeQualifierCode": "23" }, { "benefitAmount": "0", "code": "G", "coverageLevel": "Family", "coverageLevelCode": "FAM", "inPlanNetworkIndicator": "No", "inPlanNetworkIndicatorCode": "N", "name": "Out of Pocket (Stop Loss)", "planCoverage": "Gold Plan", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifier": "Remaining", "timeQualifierCode": "29" } ], "confidence": { "level": "REVIEW_NEEDED", "reason": "This record was identified as a low confidence match due to a DOB partial match" }, "payer": { "name": "EXAMPLE INSURANCE CO" }, "planDateInformation": { "eligibilityBegin": "20250101", "planBegin": "20250101", "service": "20250301" }, "planInformation": { "groupDescription": "Individual On-Exchange", "groupNumber": "123456-78", "planNumber": "123456-EXMPL9876" }, "provider": { "entityType": "Non-Person Entity", "npi": "1999999984", "providerName": "provider" }, "subscriber": { "address": { "address1": "123 Main Street", "city": "ANYTOWN", "postalCode": "12345", "state": "CA" }, "dateOfBirth": "19900115", "firstName": "John", "gender": "M", "groupDescription": "Individual On-Exchange", "groupNumber": "123456-78", "lastName": "Doe", "memberId": "987654321000", "middleName": "Smith", "planNumber": "123456-EXMPL9876" } } ], "meta": { "applicationMode": "production", "traceId": "1-abcdef12-123456789abcdef123456789" }, "status": "COMPLETE" } ``` #### 202 Still processing **Schema:** `InsuranceDiscoveryCheckResponseContent` **Properties:** - **`coveragesFound`** (`integer`): The number of potential coverage matches for the patient. This is `0` if Stedi didn't find any matching coverage. - **`discoveryId`** (`string`): A unique ID for this insurance discovery check. You can use it to retrieve the results asynchronously through the [Insurance Discovery Check Results](https://www.stedi.com/docs/healthcare/api-reference/get-insurance-discovery-results) endpoint. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items`** (`array of InsuranceDiscoveryResponseFields objects`): An array of potential coverage matches for the patient. It contains items only when the insurance discovery check `status` is `COMPLETE`. Each item in the array contains information about a potential match, including the provider, subscriber, payer, and plan information. - **`items[].benefitsInformation`** (`array of DiscoveryBenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, copays, etc.), out of pocket maximums, and more. This is the same information you would get from a standard eligibility check. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) in our eligibility check documentation for more information about benefit types, details about how to interpret the response, and additional examples. - **`items[].benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`items[].benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`items[].benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`items[].benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`items[].benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`items[].benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`items[].benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`items[].benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`items[].benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`items[].benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`items[].benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`items[].benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`items[].benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`items[].benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`items[].benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`items[].benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`items[].benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`items[].benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`items[].benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`items[].benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`items[].benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`items[].benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`items[].benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`items[].benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`items[].benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`items[].benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`items[].benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`items[].benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`items[].benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`items[].benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`items[].confidence`** (`object`) - **`items[].confidence.level`** (`string`) - Allowed values: `REVIEW_NEEDED`, `HIGH` - **`items[].confidence.reason`** (`string`): A reason for the confidence level, if one is available. For example, `This record was identified as a low confidence match due to a DOB partial match`. Not always included in the response. - **`items[].dependent`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].dependent.address`** (`object`) - **`items[].dependent.address.address1`** (`string`): The first line of the address. - **`items[].dependent.address.address2`** (`string`): The second line of the address. - **`items[].dependent.address.city`** (`string`): The city. - **`items[].dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].dependent.dateOfBirth`** (`string`): The member's date of birth. - **`items[].dependent.dateTimePeriod`** (`string`): The military service date. - **`items[].dependent.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].dependent.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].dependent.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].dependent.endDateTimePeriod`** (`string`): The military service end date. - **`items[].dependent.entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`items[].dependent.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.firstName`** (`string`): The member's first name. - **`items[].dependent.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].dependent.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].dependent.groupDescription`** (`string`): Group name - **`items[].dependent.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].dependent.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].dependent.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].dependent.insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`items[].dependent.lastName`** (`string`): The member's last name. - **`items[].dependent.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].dependent.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].dependent.memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`items[].dependent.middleName`** (`string`): The member's middle name or initial. - **`items[].dependent.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].dependent.planDescription`** (`string`): Plan name - **`items[].dependent.planNetworkDescription`** (`string`): Plan network name - **`items[].dependent.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].dependent.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].dependent.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`items[].dependent.relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`items[].dependent.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].dependent.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].dependent.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].dependent.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].dependent.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependent.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependent.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependent.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependent.responseProvider.address`** (`object`) - **`items[].dependent.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].dependent.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].dependent.responseProvider.address.city`** (`string`): The city. - **`items[].dependent.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].dependent.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].dependent.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].dependent.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].dependent.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].dependent.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].dependent.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].dependent.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].dependent.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].dependent.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].dependent.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].dependent.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].dependent.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].dependent.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].dependent.startDateTimePeriod`** (`string`): The military service start date. - **`items[].dependent.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].dependent.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].payer`** (`object`) - **`items[].payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`items[].payer.contactInformation`** (`object`) - **`items[].payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].payer.contactInformation.name`** (`string`): The name of the contact person. - **`items[].payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`items[].payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`items[].payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`items[].payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`items[].payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`items[].payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`items[].payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`items[].payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].payer.payorIdentification`** (`string`): The payer identification. - **`items[].payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`items[].payerId`** (`string`): The primary payer ID for this payer in [Stedi’s Payer Network](https://www.stedi.com/healthcare/network). When empty, normalize the payer ID from `payer.payorIdentification`. - **`items[].planDateInformation`** (`object`) - **`items[].planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].planDateInformation.admission`** (`string`): The admission date or dates. - **`items[].planDateInformation.certification`** (`string`): The certification date. - **`items[].planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`items[].planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].planDateInformation.discharge`** (`string`): The discharge date. - **`items[].planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].planDateInformation.issue`** (`string`): The issue date. - **`items[].planDateInformation.plan`** (`string`): Plan effective dates. - **`items[].planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`items[].planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].planDateInformation.service`** (`string`): The service date or dates. - **`items[].planDateInformation.status`** (`string`): The status date. - **`items[].planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`items[].planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`items[].planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`items[].planInformation.caseNumber`** (`string`): The case number - **`items[].planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`items[].planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`items[].planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`items[].planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`items[].planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`items[].planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`items[].planInformation.eligibilityCategory`** (`string`): The eligibility category - **`items[].planInformation.facilityIdNumber`** (`string`): The facility ID number - **`items[].planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`items[].planInformation.familyUnitNumber`** (`string`): The family unit number - **`items[].planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`items[].planInformation.groupDescription`** (`string`): The group description - **`items[].planInformation.groupNumber`** (`string`): The group number - **`items[].planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`items[].planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`items[].planInformation.issueNumber`** (`string`): The issue number - **`items[].planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`items[].planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`items[].planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`items[].planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`items[].planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`items[].planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`items[].planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`items[].planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`items[].planInformation.planDescription`** (`string`): The plan description - **`items[].planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`items[].planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`items[].planInformation.planNumber`** (`string`): The plan number - **`items[].planInformation.policyNumber`** (`string`): The group or policy number - **`items[].planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`items[].planInformation.priorIdNumber`** (`string`): The prior identifier number - **`items[].planInformation.referralNumber`** (`string`): The referral number - **`items[].planInformation.socialSecurityNumber`** (`string`): The social security number - **`items[].planInformation.stateLicenseNumber`** (`string`): The state license number - **`items[].planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`items[].planInformation.userIdentification`** (`string`): The user identification - **`items[].provider`** (`object`) - **`items[].provider.address`** (`object`) - **`items[].provider.address.address1`** (`string`): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].provider.payorIdentification`** (`string`): The payer identification. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].provider.providerOrgName`** (`string`): The provider's organization name. - **`items[].provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].provider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].subscriber.address`** (`object`) - **`items[].subscriber.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`items[].subscriber.dateTimePeriod`** (`string`): The military service date. - **`items[].subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`items[].subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`items[].subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.firstName`** (`string`): The member's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].subscriber.groupDescription`** (`string`): Group name - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`items[].subscriber.lastName`** (`string`): The member's last name. - **`items[].subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`items[].subscriber.middleName`** (`string`): The member's middle name or initial. - **`items[].subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].subscriber.planDescription`** (`string`): Plan name - **`items[].subscriber.planNetworkDescription`** (`string`): Plan network name - **`items[].subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`items[].subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`items[].subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.responseProvider.address`** (`object`) - **`items[].subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.responseProvider.address.city`** (`string`): The city. - **`items[].subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.traceId`** (`string`): The unique ID Stedi assigns to this request. - **`status`** (`string`) - Allowed values: `PENDING`, `COMPLETE`, `ERROR` - **`warnings`** (`array of Warning objects`): Issues with your insurance discovery check that may affect the results. For example, Stedi issues a warning when enrolling with a payer would improve the results for future requests. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. **Example:** ```json { "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "meta": { "traceId": "1-abcdef12-987654321fedcba987654321" }, "status": "PENDING" } ``` #### 400 ValidationException 400 response **Schema:** `ValidationExceptionResponseContent` **Properties:** - **`code`** (`string`): A code describing the type of validation failure. - **`message`** (`string`) (required): A message describing the causes of the validation failure. There may be more than one. #### 403 AccessDeniedException 403 response **Schema:** `AccessDeniedExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 429 ThrottlingException 429 response **Schema:** `ThrottlingExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 500 InternalFailureException 500 response **Schema:** `InternalFailureExceptionResponseContent` **Properties:** - **`code`** (`string`): Error classification code - **`message`** (`string`) (required): Human-readable error message #### 502 Check failed **Schema:** `InsuranceDiscoveryCheckResponseContent` **Properties:** - **`coveragesFound`** (`integer`): The number of potential coverage matches for the patient. This is `0` if Stedi didn't find any matching coverage. - **`discoveryId`** (`string`): A unique ID for this insurance discovery check. You can use it to retrieve the results asynchronously through the [Insurance Discovery Check Results](https://www.stedi.com/docs/healthcare/api-reference/get-insurance-discovery-results) endpoint. - **`errors`** (`array of EligibilityCheckError objects`): When a payer rejects your eligibility check, the response contains one or more [`AAA` errors](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#payer-aaa-errors) that specify the reasons for the rejection and any recommended follow-up actions. Any errors that occur at the `payer`, `provider`, `subscriber`, or `dependents` levels are also included in this array, allowing you to review all errors in a central location. If there are no `AAA` errors, this array will be empty. - **`errors[].code`** (`string`): This is a superset of all the possible codes in the sub-loops, as all errors are bubbled up to the top level of the response Payers may sometimes return other non-compliant values. - Allowed values: `04`, `15`, `33`, `35`, `41`, `42`, `43`, `44`, `45`, `46`, `47`, `48`, `49`, `50`, `51`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `60`, `61`, `62`, `63`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `73`, `74`, `75`, `76`, `77`, `78`, `79`, `80`, `97`, `98`, `AA`, `AE`, `AF`, `AG`, `AO`, `CI`, `E8`, `IA`, `MA`, `T4` - **`errors[].description`** (`string`): The error description. - **`errors[].field`** (`string`): The error type, `AAA`. - **`errors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Please Resubmit Original Transaction`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`errors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`errors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items`** (`array of InsuranceDiscoveryResponseFields objects`): An array of potential coverage matches for the patient. It contains items only when the insurance discovery check `status` is `COMPLETE`. Each item in the array contains information about a potential match, including the provider, subscriber, payer, and plan information. - **`items[].benefitsInformation`** (`array of DiscoveryBenefitsInformation objects`): Information about the patient's healthcare benefits, such as coverage level (individual vs. family), coverage type (deductibles, copays, etc.), out of pocket maximums, and more. This is the same information you would get from a standard eligibility check. Payers typically return at least the following properties: `code`, `coverageLevelCode`, `serviceTypeCodes`, and either `benefitAmount` or `benefitPercent`. However, the exact properties returned in this object are up to the payer's discretion. Visit [Determine patient benefits](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits) in our eligibility check documentation for more information about benefit types, details about how to interpret the response, and additional examples. - **`items[].benefitsInformation[].additionalInformation`** (`array of AdditionalInformation objects`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].additionalInformation[].description`** (`string`): A free-form message containing additional information about the benefits in the response. - **`items[].benefitsInformation[].authOrCertIndicator`** (`string`): Code indicating whether the benefit is subject to prior authorization or certification. Payers may sometimes return other non-compliant values. - Allowed values: `N`, `U`, `Y` - **`items[].benefitsInformation[].benefitAmount`** (`string`): The monetary benefit amount, such as a patient's co-pay or deductible. This value is expressed as a decimal, such as 100.00. The payer will always send a value in this property when the `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. For those codes, this value represents the patient's portion of responsibility. The payer will **never** send this value when `benefitsInformation[].code` = `A` - Co-Insurance. This property can contain zero when the patient has no responsibility. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitPercent`** (`string`): The percentage of the benefit, such as co-insurance. This property can contain zero when the patient has no responsibility. The payer will always send a value in this property when `benefitsInformation[].code` = `A` - Co-Insurance. For this code, this value represents the patient's portion of the responsibility. The percentage is expressed as a decimal, such as `0.80` represents 80%. The payer will **never** send a value in this property when `benefitsInformation[].code` = `B` - Co-Payment, `C` - Deductible, `G` - Out of Pocket (Stop Loss), `J` - Cost Containment, or `Y` - Spend Down. Learn more about [patient costs](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits). - **`items[].benefitsInformation[].benefitQuantity`** (`string`): The quantity of the benefit, qualified by the type specified in `quantityQualifier`. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsAdditionalInformation`** (`object`): Identifying information specific to this type of benefit. - **`items[].benefitsInformation[].benefitsAdditionalInformation.alternativeListId`** (`string`): The alternative list ID. This identifier allows the payer to specify a list of drugs and its alternative drugs with the associated formulary status for the patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.coverageListId`** (`string`): The coverage list ID. This identifier allows the payer to specify the identifier of a list of drugs that have coverage limitations for the associated patient. - **`items[].benefitsInformation[].benefitsAdditionalInformation.drugFormularyNumber`** (`string`): The drug formulary number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.familyUnitNumber`** (`string`): The family unit number. This is returned when the payer is a pharmacy benefits manager (PBM) and the patient has a suffix to their member ID number that is used in the NCPDP Telecom Standard Insurance Segment, in field `303-C3` (Person Code). For all other uses, the family unit number (suffix) is considered part of the patient's member ID number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupDescription`** (`string`): Group name - **`items[].benefitsInformation[].benefitsAdditionalInformation.groupNumber`** (`string`): The group number for the patient's health insurance plan. - **`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].benefitsInformation[].benefitsAdditionalInformation.insurancePolicyNumber`** (`string`): The insurance policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecepientIdNumber`** (`string`): Deprecated (misspelled): use medicaidRecipientIdNumber. The Medicaid Recipient Identification number. This shape is deprecated: Misspelled. Use medicaidRecipientIdNumber instead. Still populated for backward compatibility. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid Recipient Identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.medicalAssistanceCategory`** (`string`): The medical assistance category. - **`items[].benefitsInformation[].benefitsAdditionalInformation.memberId`** (`string`): The patient's member ID. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planDescription`** (`string`): Plan name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkDescription`** (`string`): Plan network name - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNetworkIdNumber`** (`string`): The plan network identification number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.planNumber`** (`string`): The insurance plan number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.policyNumber`** (`string`): The patient's policy number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.priorAuthorizationNumber`** (`string`): The prior authorization number. - **`items[].benefitsInformation[].benefitsAdditionalInformation.referralNumber`** (`string`): The referral number. - **`items[].benefitsInformation[].benefitsDateInformation`** (`object`): Dates associated with the benefits. - This is where you can find benefit-specific eligibility dates, if provided. These dates override dates provided in `planDateInformation` for this benefit type. - This is where the payer may specify the last time the service was rendered (`latestVisitOrConsultation`), which you can use to determine whether the patient has already reached the allowed frequency, if applicable. For example, this object could contain the date when the patient received their last dental cleaning. - These dates only apply to the `benefitsInformation` object in which this `benefitsDateInformation` is provided. - **`items[].benefitsInformation[].benefitsDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].benefitsInformation[].benefitsDateInformation.admission`** (`string`): The admission date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.admissions`** (`array of DtpDate objects`): The date(s) for admission. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.admissions[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.benefit`** (`string`): The benefit date. - **`items[].benefitsInformation[].benefitsDateInformation.benefitBegin`** (`string`): The date when the benefit begins. - **`items[].benefitsInformation[].benefitsDateInformation.benefitEnd`** (`string`): The date when the benefit ends. - **`items[].benefitsInformation[].benefitsDateInformation.certification`** (`string`): The certification date. - **`items[].benefitsInformation[].benefitsDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].benefitsInformation[].benefitsDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].benefitsInformation[].benefitsDateInformation.completion`** (`string`): The completion date. - **`items[].benefitsInformation[].benefitsDateInformation.coordinationOfBenefits`** (`string`): The coordination of benefits date. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfDeath`** (`string`): The date of death. - **`items[].benefitsInformation[].benefitsDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].benefitsInformation[].benefitsDateInformation.discharge`** (`string`): The discharge date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges`** (`array of DtpDate objects`): The date(s) when the patient was discharged. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].date`** (`string`): A single date. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].endDate`** (`string`): The end date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.discharges[].startDate`** (`string`): The beginning date of a range. - **`items[].benefitsInformation[].benefitsDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].benefitsInformation[].benefitsDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].benefitsInformation[].benefitsDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].benefitsInformation[].benefitsDateInformation.issue`** (`string`): The issue date. - **`items[].benefitsInformation[].benefitsDateInformation.latestVisitOrConsultation`** (`string`): The latest visit or consultation date. This date may be used to determine whether the patient has already reached the allowed frequency for a specific benefit. - **`items[].benefitsInformation[].benefitsDateInformation.periodEnd`** (`string`): The end of a period. - **`items[].benefitsInformation[].benefitsDateInformation.periodStart`** (`string`): The start of a period. - **`items[].benefitsInformation[].benefitsDateInformation.plan`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planBegin`** (`string`): Only included when multiple plans apply to the patient or multiple plan periods apply. - **`items[].benefitsInformation[].benefitsDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].benefitsInformation[].benefitsDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].benefitsInformation[].benefitsDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].benefitsInformation[].benefitsDateInformation.premiumPaidtoDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].benefitsInformation[].benefitsDateInformation.primaryCareProvider`** (`string`): The primary care provider date. - **`items[].benefitsInformation[].benefitsDateInformation.service`** (`string`): The service date or dates. - **`items[].benefitsInformation[].benefitsDateInformation.status`** (`string`): The status date. - **`items[].benefitsInformation[].benefitsRelatedEntities`** (`array of BenefitsRelatedEntity objects`): Other entities associated with the eligibility or benefits. This could be a provider, an individual, an organization, or another payer. When present, this array typically contains information about the patient's primary care provider (PCP), another organization that handles a specific benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). - This is where information for a crossover carrier such as Medicaid or Medicare is provided, if it's applicable to the patient and the payer supports it. - For Blue Cross Blue Shield (BCBS) payers, Stedi returns an entry containing information about the patient's home plan - the plan that actually verified the coverage. In this object, the `entityIdentifier` property is set to `Party Performing Verification`. [Learn more](https://www.stedi.com/docs/healthcare/eligibility-plan-details#bcbs-home-plan) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address1`** (`string`): The first line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.address2`** (`string`): The second line of the address. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.city`** (`string`): The city. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].benefitsInformation[].benefitsRelatedEntities[].address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].contactInformation.name`** (`string`): The name of the contact person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityFirstname`** (`string`): The first name of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentification`** (`string`): Code identifying the type of value provided in `entityIdentificationValue`. For example, `FI` - Federal Taxpayer's Identification Number. Payers may sometimes return other non-compliant values. - Allowed values: `24`, `34`, `46`, `FA`, `FI`, `II`, `MI`, `NI`, `PI`, `PP`, `SV`, `XV`, `XX` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue`** (`string`): The identification number for the entity, qualified by the code in `entityIdentification`. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityIdentifier`** (`string`): Code identifying an organizational entity, a physical location, property or an individual. - `PPO` is used to identify a PPO by name or identification number, and also may also be used if identifying the Network that benefits are restricted to for In-Network benefits. Payers may sometimes return other non-compliant values. - Allowed values: `Contracted Service Provider`, `Preferred Provider Organization (PPO)`, `Provider`, `Third-Party Administrator`, `Employer`, `Other Physician`, `Facility`, `Gateway Provider`, `Group`, `Independent Physicians Association (IPA)`, `Insured or Subscriber`, `Legal Representative`, `Origin Carrier`, `Primary Care Provider`, `Prior Insurance Carrier`, `Plan Sponsor`, `Payer`, `Primary Payer`, `Secondary Payer`, `Tertiary Payer`, `Party Performing Verification`, `Vendor`, `Organization Completing Configuration Change`, `Utilization Management Organization`, `Managed Care Organization` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityMiddlename`** (`string`): The middle name or initial of the entity, if the entity is a person. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`** (`string`): The last name (if the entity is a person) or the business name (if the entity is an organization). - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityRelationship`** (`string`): Code specifying the relationship between the entity and the patient. Payers may sometimes return other non-compliant values. - Allowed values: `01`, `02`, `27`, `41`, `48`, `65`, `72` - **`items[].benefitsInformation[].benefitsRelatedEntities[].entitySuffix`** (`string`): The name suffix, such as Sr. Jr. or III. - **`items[].benefitsInformation[].benefitsRelatedEntities[].entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation`** (`object`) - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].benefitsInformation[].benefitsRelatedEntities[].providerInformation.referenceIdentification`** (`string`): The provider's taxonomy code. - **`items[].benefitsInformation[].benefitsServiceDelivery`** (`array of BenefitsServiceDelivery objects`) - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifier`** (`string`): The name of the `deliveryOrCalendarPatternQualifierCode`. For example, `Last Working Day of Period`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Week of the Month`, `2nd Week of the Month`, `3rd Week of the Month`, `4th Week of the Month`, `5th Week of the Month`, `1st & 3rd Week of the Month`, `2nd & 4th Week of the Month`, `1st Working Day of Period`, `Last Working Day of Period`, `Monday through Friday`, `Monday through Saturday`, `Monday through Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`, `Monday through Thursday`, `Immediately`, `As Directed`, `Daily Mon. Through Fri.`, `1/2 Mon. & 1/2 Tues.`, `1/2 Tues. & 1/2 Thurs.`, `1/2 Wed. & 1/2 Fri.`, `Once Anytime Mon. through Fri.`, `Tuesday through Friday`, `Monday, Tuesday and Thursday`, `Monday, Tuesday and Friday`, `Wednesday and Thursday`, `Monday, Wednesday and Thursday`, `Tuesday, Thursday and Friday`, `1/2 Tues. & 1/2 Fri.`, `1/2 Mon. & 1/2 Wed.`, `1/3 Mon., 1/3 Wed., 1/3 Fri.`, `Whenever Necessary`, `1/2 By Wed. Bal. By Fri.`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode`** (`string`): Code that specifies the routine shipments, deliveries, or calendar pattern. For example `9` - Last Working Day of Period. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#delivery-frequency-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `J`, `K`, `L`, `M`, `N`, `O`, `P`, `Q`, `R`, `S`, `SG`, `SL`, `SP`, `SX`, `SY`, `SZ`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifier`** (`string`): The name of the `deliveryPatternTimeQualifierCode`. For example, `A.M.`. Payers may sometimes return other non-compliant values. - Allowed values: `1st Shift (Normal Working Hours)`, `2nd Shift`, `3rd Shift`, `A.M.`, `P.M.`, `As Directed`, `Any Shift`, `None (Also Used to Cancel or Override a Previous Pattern)` - **`items[].benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode`** (`string`): A code specifying the time for routine shipments or deliveries. Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Y` - **`items[].benefitsInformation[].benefitsServiceDelivery[].numOfPeriods`** (`string`): The number of periods in the time period. For example, `12` when the `timePeriodQualifier` is `Hour`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantity`** (`string`): The quantity of the benefit. For example, `10` when the `quantityQualifier` is `Visits`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifier`** (`string`): The name of the `quantityQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Units`, `Hours`, `Month`, `Visits` - **`items[].benefitsInformation[].benefitsServiceDelivery[].quantityQualifierCode`** (`string`): Code specifying the type of quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DY`, `FL`, `HS`, `MN`, `VS` - **`items[].benefitsInformation[].benefitsServiceDelivery[].sampleSelectionModulus`** (`string`): Specifies the sampling frequency, based on the unit of measure. For example `every 2 months` or `once per calendar year`. - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifier`** (`string`): The name of the `timePeriodQualifierCode`. For example, `Calendar Year`. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week` - **`items[].benefitsInformation[].benefitsServiceDelivery[].timePeriodQualifierCode`** (`string`): Code specifying the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementCode`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifier`** (`string`): The name of the `unitForMeasurementQualifierCode`. For example, `Days`. Payers may sometimes return other non-compliant values. - Allowed values: `Days`, `Months`, `Visits`, `Week`, `Years` - **`items[].benefitsInformation[].benefitsServiceDelivery[].unitForMeasurementQualifierCode`** (`string`): Code specifying the unit of measurement for the quantity. Payers may sometimes return other non-compliant values. - Allowed values: `DA`, `MO`, `VS`, `WK`, `YR` - **`items[].benefitsInformation[].code`** (`string`): The code indicating the type of benefits information. Visit [Eligibility and benefit codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for more information. Payers may sometimes return other non-compliant values. - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `A`, `B`, `C`, `CB`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `MC`, `N`, `O`, `P`, `Q`, `R`, `S`, `T`, `U`, `V`, `W`, `X`, `Y` - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier`** (`object`): Identifies relevant medical procedures by their standard codes and modifiers (if applicable). - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.diagnosisCodePointer`** (`array of strings`): The diagnosis code pointer. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureCode`** (`string`): The procedure code. Many payers do not support eligibility checks for specific procedure codes. If the payer does not support procedure codes, they return a generic benefits response for the service type code `30`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.procedureModifiers`** (`array of strings`): Procedure modifiers that provides additional information related to the performance of the service. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceID`** (`string`): The product or service ID. This value represents the end of the range of applicable procedure codes. The beginning of the range is listed in `procedureCode`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifier`** (`string`): The name of the `productOrServiceIDQualifierCode`. For example, `American Dental Association`. - **`items[].benefitsInformation[].compositeMedicalProcedureIdentifier.productOrServiceIDQualifierCode`** (`string`): Identifies the external code list used to provide the specified procedure or service codes. Can be `AD` - American Dental Association, `CJ` - Current Procedural Terminology (CPT) codes, `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes, `ID` - International Classification of Diseases 9th Revision, Clinical Modification (ICD-9-CM) - Procedure, `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code, `N4` - National Drug Code in 5-4-2 Format, or `ZZ` - Mutually Defined - **`items[].benefitsInformation[].coverageLevel`** (`string`): The full name of the coverage level code. Payers may sometimes return other non-compliant values. - Allowed values: `Children Only`, `Dependents Only`, `Employee and Children`, `Employee Only`, `Employee and Spouse`, `Family`, `Individual`, `Spouse and Children`, `Spouse Only` - **`items[].benefitsInformation[].coverageLevelCode`** (`string`): Code indicating the level of coverage for the patient. This will either be `CHD` - Children Only, `DEP` - Dependents Only, `ECH` - Employee and Children, `EMP` - Employee Only, `ESP` - Employee and Spouse, `FAM` - Family, `IND` - Individual, `SPC` - Spouse and Children, `SPO` - Spouse Only, or `Unknown`. Payers may sometimes return other non-compliant values. - Allowed values: `CHD`, `DEP`, `ECH`, `EMP`, `ESP`, `FAM`, `IND`, `SPC`, `SPO` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList`** (`array of EligibilityAdditionalInformation objects`): Used when there are multiple Nature of Injury Codes or a Facility Type Codes included in the response. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeCategory`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `44` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifier`** (`string`): The name of the `codeListQualifierCode`. For example `Mutually Defined` when the code is set to `ZZ`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].codeListQualifierCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `GR`, `NI`, `ZZ` - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industry`** (`string`): The name of the `industryCode`. For example `Pharmacy` when the code is `01`. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].industryCode`** (`string`): The specific industry code. When `codeListQualifierCode` is set to `ZZ` - Mutually Defined, this property will be set to a place of service code. Visit the [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of these codes and their descriptions. - **`items[].benefitsInformation[].eligibilityAdditionalInformationList[].injuredBodyPartName`** (`string`): Description of injured body parts. - **`items[].benefitsInformation[].headerLoopIdentifierCode`** (`string`): The loop header identifier number in the `LS` segment of the original X12 EDI transaction. - **`items[].benefitsInformation[].inPlanNetworkIndicator`** (`string`): The name of the in-plan network indicator code. Payers may sometimes return other non-compliant values. - Allowed values: `Yes`, `No`, `Unknown`, `Not Applicable` - **`items[].benefitsInformation[].inPlanNetworkIndicatorCode`** (`string`): Code indicating whether the benefit is in-network or out-of-network. Can be `Y` - Yes, `N` - No, `U` - Unknown, or `W` - Not Applicable Code `U` indicates that it is unknown whether the benefits are in or out-of-network. Code `W` indicates that the benefit applies to both in and out-of-network providers. Note that this property **doesn't indicate** whether the provider is in or out-of-network for the patient. To determine that, you must check with the payer directly. Payers may sometimes return other non-compliant values. - Allowed values: `Y`, `N`, `U`, `W` - **`items[].benefitsInformation[].insuranceType`** (`string`): The full name of the insurance type code. Payers may sometimes return other non-compliant values. - Allowed values: `Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan`, `Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan`, `Medicare Secondary, No-fault Insurance including Auto is Primary`, `Medicare Secondary Worker's Compensation`, `Medicare Secondary Public Health Service (PHS)or Other Federal Agency`, `Medicare Secondary Black Lung`, `Medicare Secondary Veteran's Administration`, `Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP)`, `Medicare Secondary, Other Liability Insurance is Primary`, `Auto Insurance Policy`, `Commercial`, `Consolidated Omnibus Budget Reconciliation Act (COBRA)`, `Medicare Conditionally Primary`, `Disability`, `Disability Benefits`, `Exclusive Provider Organization`, `Family or Friends`, `Group Policy`, `Health Maintenance Organization (HMO)`, `Health Maintenance Organization (HMO) - Medicare Risk`, `Special Low Income Medicare Beneficiary`, `Indemnity`, `Individual Policy`, `Long Term Care`, `Long Term Policy`, `Life Insurance`, `Litigation`, `Medicare Part A`, `Medicare Part B`, `Medicaid`, `Medigap Part A`, `Medigap Part B`, `Medicare Primary`, `Other`, `Property Insurance - Personal`, `Personal`, `Personal Payment (Cash - No Insurance)`, `Preferred Provider Organization (PPO)`, `Point of Service (POS)`, `Qualified Medicare Beneficiary`, `Property Insurance - Real`, `Supplemental Policy`, `Tax Equity Fiscal Responsibility Act (TEFRA)`, `Workers Compensation`, `Wrap Up Policy` - **`items[].benefitsInformation[].insuranceTypeCode`** (`string`): Code identifying the type of insurance policy. Payers may sometimes return other non-compliant values. - Allowed values: `12`, `13`, `14`, `15`, `16`, `41`, `42`, `43`, `47`, `AP`, `C1`, `CO`, `CP`, `D`, `DB`, `EP`, `FF`, `GP`, `HM`, `HN`, `HS`, `IN`, `IP`, `LC`, `LD`, `LI`, `LT`, `MA`, `MB`, `MC`, `MH`, `MI`, `MP`, `OT`, `PE`, `PL`, `PP`, `PR`, `PS`, `QM`, `RP`, `SP`, `TF`, `WC`, `WU` - **`items[].benefitsInformation[].name`** (`string`): The full name of the benefits information code. Payers may sometimes return other non-compliant values. - Allowed values: `Active Coverage`, `Active - Full Risk Capitation`, `Active - Services Capitated`, `Active - Services Capitated to Primary Care Physician`, `Active - Pending Investigation`, `Inactive`, `Inactive - Pending Eligibility Update`, `Inactive - Pending Investigation`, `Co-Insurance`, `Co-Payment`, `Deductible`, `Coverage Basis`, `Benefit Description`, `Exclusions`, `Limitations`, `Out of Pocket (Stop Loss)`, `Unlimited`, `Non-Covered`, `Cost Containment`, `Reserve`, `Primary Care Provider`, `Pre-existing Condition`, `Managed Care Coordinator`, `Services Restricted to Following Provider`, `Not Deemed a Medical Necessity`, `Benefit Disclaimer`, `Second Surgical Opinion Required`, `Other or Additional Payor`, `Prior Year(s) History`, `Card(s) Reported Lost/Stolen`, `Contact Following Entity for Eligibility or Benefit Information`, `Cannot Process`, `Other Source of Data`, `Health Care Facility`, `Spend Down` - **`items[].benefitsInformation[].planCoverage`** (`string`): The specific product name or special program name for an insurance plan. For example `Gold 1-2-3`. Payers are normally required to send the plan name when `benefitsInformation[].code` is set to values `1` - `8` and the `benefitsInformation[].serviceTypeCodes` contains `30` (Health Benefit Plan Coverage). However, behavior may vary by payer, so don't rely on this information being present in the response. Note that the plan name returned in this property may not exactly match the name the payer uses in official plan documents or marketing literature. Visit [What's the plan name?](https://www.stedi.com/docs/healthcare/eligibility-plan-details#plan-name) in the benefits response documentation for more details. - **`items[].benefitsInformation[].quantityQualifier`** (`string`): The name of the quantity qualifier code. Payers may sometimes return other non-compliant values. - Allowed values: `Minimum`, `Quantity Used`, `Covered - Actual`, `Covered - Estimated`, `Number of Co-insurance Days`, `Deductible Blood Units`, `Days`, `Hours`, `Life-time Reserve - Actual`, `Life-time Reserve - Estimated`, `Maximum`, `Month`, `Number of Services or Procedures`, `Quantity Approved`, `Age, High Value`, `Age, Low Value`, `Visits`, `Years` - **`items[].benefitsInformation[].quantityQualifierCode`** (`string`): Code indicating the type of quantity for the benefit. Payers may sometimes return other non-compliant values. - Allowed values: `8H`, `99`, `CA`, `CE`, `D3`, `DB`, `DY`, `HS`, `LA`, `LE`, `M2`, `MN`, `P6`, `QA`, `S7`, `S8`, `VS`, `YY` - **`items[].benefitsInformation[].serviceTypeCodes`** (`array of strings`): Service Type Codes (STCs) related to the benefit type. For example, `7` - Anesthesia. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list. This list is specific to X12 version 005010, which is the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].serviceTypes`** (`array of strings`): The names of the Service Type Codes listed in the `serviceTypeCodes` array. Visit [Service Type Codes](https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits#service-type-codes) for a complete list of codes and their names. The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. Payers may sometimes return other non-compliant values. - **`items[].benefitsInformation[].timeQualifier`** (`string`): The name of the time period qualifier code. Note that for the patient's deductible, `Calendar Year` indicates the patient's total deductible amount for the year, while `Remaining` indicates the amount left to meet the deductible. Visit [Payer benefit response](https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits#deductible) to learn more about deductibles. Payers may sometimes return other non-compliant values. - Allowed values: `Hour`, `Day`, `24 Hours`, `Years`, `Service Year`, `Calendar Year`, `Year to Date`, `Contract`, `Episode`, `Visit`, `Outlier`, `Remaining`, `Exceeded`, `Not Exceeded`, `Lifetime`, `Lifetime Remaining`, `Month`, `Week`, `Admission` - **`items[].benefitsInformation[].timeQualifierCode`** (`string`): Code indicating the time period for the benefit information. Payers may sometimes return other non-compliant values. - Allowed values: `6`, `7`, `13`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36` - **`items[].benefitsInformation[].trailerLoopIdentifierCode`** (`string`): The loop trailer identifier number in the `LE` segment of the original X12 EDI transaction. - **`items[].confidence`** (`object`) - **`items[].confidence.level`** (`string`) - Allowed values: `REVIEW_NEEDED`, `HIGH` - **`items[].confidence.reason`** (`string`): A reason for the confidence level, if one is available. For example, `This record was identified as a low confidence match due to a DOB partial match`. Not always included in the response. - **`items[].dependent`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].dependent.address`** (`object`) - **`items[].dependent.address.address1`** (`string`): The first line of the address. - **`items[].dependent.address.address2`** (`string`): The second line of the address. - **`items[].dependent.address.city`** (`string`): The city. - **`items[].dependent.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].dependent.dateOfBirth`** (`string`): The member's date of birth. - **`items[].dependent.dateTimePeriod`** (`string`): The military service date. - **`items[].dependent.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].dependent.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].dependent.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].dependent.endDateTimePeriod`** (`string`): The military service end date. - **`items[].dependent.entityIdentifier`** (`string`): The entity identifier for the dependent. - Allowed values: `Dependent` - **`items[].dependent.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.firstName`** (`string`): The member's first name. - **`items[].dependent.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].dependent.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].dependent.groupDescription`** (`string`): Group name - **`items[].dependent.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].dependent.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].dependent.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].dependent.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].dependent.insuredIndicator`** (`string`): Indicates the status of the insured. For the dependent, this is always `N`. - Allowed values: `N` - **`items[].dependent.lastName`** (`string`): The member's last name. - **`items[].dependent.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].dependent.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].dependent.memberId`** (`string`): This property will never be populated. Please use `subscriber.memberId` instead. - **`items[].dependent.middleName`** (`string`): The member's middle name or initial. - **`items[].dependent.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].dependent.planDescription`** (`string`): Plan name - **`items[].dependent.planNetworkDescription`** (`string`): Plan network name - **`items[].dependent.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].dependent.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].dependent.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For example, `Child` when the code is `19`. - Allowed values: `Spouse`, `Child`, `Employee`, `Unknown`, `Organ Donor`, `Cadaver Donor`, `Life Partner`, `Other Relationship` - **`items[].dependent.relationToSubscriberCode`** (`string`): For the dependent, this can be `01` - Spouse, `19` - Child, `20` Employee, `21` - Unknown, `39` - Organ Donor, `40` - Cadaver Donor, `53` - Life Partner, or `G8` - Other Relationship. - Allowed values: `01`, `19`, `20`, `21`, `39`, `40`, `53`, `G8`, `Unknown` - **`items[].dependent.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].dependent.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].dependent.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].dependent.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].dependent.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].dependent.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].dependent.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].dependent.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].dependent.responseProvider.address`** (`object`) - **`items[].dependent.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].dependent.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].dependent.responseProvider.address.city`** (`string`): The city. - **`items[].dependent.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].dependent.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].dependent.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].dependent.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].dependent.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].dependent.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].dependent.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].dependent.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].dependent.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].dependent.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].dependent.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].dependent.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].dependent.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].dependent.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].dependent.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].dependent.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].dependent.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].dependent.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].dependent.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].dependent.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].dependent.startDateTimePeriod`** (`string`): The military service start date. - **`items[].dependent.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].dependent.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`items[].payer`** (`object`) - **`items[].payer.centersForMedicareAndMedicaidPlanId`** (`string`): The payer's Centers for Medicare and Medicaid Services PlanID. - **`items[].payer.contactInformation`** (`object`) - **`items[].payer.contactInformation.contacts`** (`array of Contacts objects`): The contact information. - **`items[].payer.contactInformation.contacts[].communicationMode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Electronic Data Interchange Access Number`, `Electronic Mail`, `Facsimile`, `Telephone`, `Uniform Resource Locator (URL)`, `Telephone Extension`, `Work Phone Number` - **`items[].payer.contactInformation.contacts[].communicationNumber`** (`string`): The communication number referenced in `communicationMode`. It includes the country or area code when applicable. Note that phone numbers are formatted as AAABBBCCCC, where AAA represents the area code, BBB represents the telephone number prefix, and CCCC represents the telephone number. Phone numbers are provided without separators, such as dashes or parentheses. For example, `5551123345` for `555-112-3345`. - **`items[].payer.contactInformation.name`** (`string`): The name of the contact person. - **`items[].payer.entityIdentifier`** (`string`): The entity identifier code for the payer. Payers may sometimes return other non-compliant values. - Allowed values: `Third-Party Administrator`, `Employer`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].payer.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].payer.etin`** (`string`): The payer's Electronic Transmitter Identification Number (ETIN). - **`items[].payer.federalTaxpayersIdNumber`** (`string`): The payer's federal taxpayer's identification number. - **`items[].payer.firstName`** (`string`): The payer's first name, when the payer is an individual (not commonly used). - **`items[].payer.lastName`** (`string`): The payer's last name. Used when the payer is an individual (not commonly used). - **`items[].payer.middleName`** (`string`): The payer's middle name or initial, when the payer is an individual (not commonly used). - **`items[].payer.naic`** (`string`): The payer's National Association of Insurance Commissioners (NAIC) identification number. - **`items[].payer.name`** (`string`): The payer's business name, when the payer is not a person. - **`items[].payer.npi`** (`string`): The payer's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].payer.payorIdentification`** (`string`): The payer identification. - **`items[].payer.suffix`** (`string`): The payer's name suffix, such as Jr. or III. Used when the payer is an individual (not commonly used). - **`items[].payerId`** (`string`): The primary payer ID for this payer in [Stedi’s Payer Network](https://www.stedi.com/healthcare/network). When empty, normalize the payer ID from `payer.payorIdentification`. - **`items[].planDateInformation`** (`object`) - **`items[].planDateInformation.added`** (`string`): Added date. Payers may return this information in the case of retroactive eligibility. - **`items[].planDateInformation.admission`** (`string`): The admission date or dates. - **`items[].planDateInformation.certification`** (`string`): The certification date. - **`items[].planDateInformation.cobraBegin`** (`string`): The date when COBRA coverage begins. - **`items[].planDateInformation.cobraEnd`** (`string`): The date when COBRA coverage ends. - **`items[].planDateInformation.dateOfDeath`** (`string`): The date of death. Payers may return this information in the case of a deceased subscriber or dependent. - **`items[].planDateInformation.dateOfLastUpdate`** (`string`): The date when the plan information was last updated. - **`items[].planDateInformation.discharge`** (`string`): The discharge date. - **`items[].planDateInformation.effectiveDateOfChange`** (`string`): The effective date of change. - **`items[].planDateInformation.eligibility`** (`string`): Plan eligibility dates. - **`items[].planDateInformation.eligibilityBegin`** (`string`): The date when the patient is first eligible for benefits under the plan. - **`items[].planDateInformation.eligibilityEnd`** (`string`): The date when the patient is no longer eligible for benefits under the plan. - **`items[].planDateInformation.enrollment`** (`string`): The date when the patient is enrolled in the plan. - **`items[].planDateInformation.issue`** (`string`): The issue date. - **`items[].planDateInformation.plan`** (`string`): Plan effective dates. - **`items[].planDateInformation.planBegin`** (`string`): The date coverage from the plan begins. - **`items[].planDateInformation.planEnd`** (`string`): The date coverage from the plan ends. - **`items[].planDateInformation.policyEffective`** (`string`): The date when the policy becomes effective. - **`items[].planDateInformation.policyExpiration`** (`string`): The date when the policy expires. - **`items[].planDateInformation.premiumPaidToDateBegin`** (`string`): The start of the period when the plan premium was paid in full. - **`items[].planDateInformation.premiumPaidToDateEnd`** (`string`): The end of period when the plan premium payments are up-to-date. - **`items[].planDateInformation.service`** (`string`): The service date or dates. - **`items[].planDateInformation.status`** (`string`): The status date. - **`items[].planInformation`** (`object`): Additional identification for the subscriber's healthcare plan. - **`items[].planInformation.agencyClaimNumber`** (`string`): The agency claim number, only used when the information source is a Property and Casualty payer. - **`items[].planInformation.alternativeListId`** (`string`): The alternative list ID - identifies a list of alternative drugs with the associated formulary status for the patient. - **`items[].planInformation.caseNumber`** (`string`): The case number - **`items[].planInformation.centersForMedicareAndMedicaidServicesNPI`** (`string`): The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) assigned by the Centers for Medicare and Medicaid Services - **`items[].planInformation.classOfContractCode`** (`string`): The class of contract code - used to identify the applicable class of contract for claims processing. - **`items[].planInformation.contractNumber`** (`string`): The contract number of a contract between the payer and the provider that requested the eligibility check. - **`items[].planInformation.coverageListId`** (`string`): The coverage list ID - identifies a list of drugs that have coverage limitations for the patient. - **`items[].planInformation.drugFormularyNumber`** (`string`): The drug formulary number - **`items[].planInformation.electronicDevicePin`** (`string`): The electronic device pin number - **`items[].planInformation.eligibilityCategory`** (`string`): The eligibility category - **`items[].planInformation.facilityIdNumber`** (`string`): The facility ID number - **`items[].planInformation.facilityNetworkIdentificationNumber`** (`string`): The facility network identification number - **`items[].planInformation.familyUnitNumber`** (`string`): The family unit number - **`items[].planInformation.federalTaxpayersIdentificationNumber`** (`string`): The federal taxpayer's identification number - **`items[].planInformation.groupDescription`** (`string`): The group description - **`items[].planInformation.groupNumber`** (`string`): The group number - **`items[].planInformation.hicNumber`** (`string`): The health insurance claim number (HICN). Note that CMS previously used the HICN to uniquely identify Medicare beneficiaries. However, they have since transitioned to a new, randomized Medicare Beneficiary Identifier (MBI) format. The HICN is no longer used for Medicare transactions but this property is now used by some payers to return MBI. If you receive a value in this property that matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI and we recommend sending a follow-up eligibility check to CMS for additional benefits data. This most commonly occurs with patients who are covered by both Medicare and Medicaid. - **`items[].planInformation.idCardNumber`** (`string`): The identity card number, used when the Identity Card Number is different than the Member Identification Number. - **`items[].planInformation.idCardSerialNumber`** (`string`): The identification card serial number. The Identification Card Serial Number uniquely identifies the identification card when multiple cards have been or will be issued to a member, such as a replacement card. - **`items[].planInformation.insurancePolicyNumber`** (`string`): The insurance policy number - **`items[].planInformation.issueNumber`** (`string`): The issue number - **`items[].planInformation.medicaidProviderNumber`** (`string`): The Medicaid provider number - **`items[].planInformation.medicaidRecipientIdNumber`** (`string`): The Medicaid recipient identification number - **`items[].planInformation.medicalAssistanceCategory`** (`string`): The medical assistance category - **`items[].planInformation.medicalRecordIdentificationNumber`** (`string`): The medical record identification number - **`items[].planInformation.medicareProviderNumber`** (`string`): The Medicare provider number - **`items[].planInformation.memberId`** (`string`): The member identification number - only used when checking eligibility with a Workers' Compensation or Property and Casualty insurer. - **`items[].planInformation.patientAccountNumber`** (`string`): The patient account number. If you included this value in the original eligibility request, the payer will return the same value here in the response. - **`items[].planInformation.personalIdentificationNumber`** (`string`): The personal identification number (PIN) - **`items[].planInformation.planDescription`** (`string`): The plan description - **`items[].planInformation.planNetworkIdDescription`** (`string`): The plan, group, or plan network name - **`items[].planInformation.planNetworkIdNumber`** (`string`): The plan network identification number - **`items[].planInformation.planNumber`** (`string`): The plan number - **`items[].planInformation.policyNumber`** (`string`): The group or policy number - **`items[].planInformation.priorAuthorizationNumber`** (`string`): The prior authorization number - **`items[].planInformation.priorIdNumber`** (`string`): The prior identifier number - **`items[].planInformation.referralNumber`** (`string`): The referral number - **`items[].planInformation.socialSecurityNumber`** (`string`): The social security number - **`items[].planInformation.stateLicenseNumber`** (`string`): The state license number - **`items[].planInformation.submitterIdentificationNumber`** (`string`): The submitter identification number - **`items[].planInformation.userIdentification`** (`string`): The user identification - **`items[].provider`** (`object`) - **`items[].provider.address`** (`object`) - **`items[].provider.address.address1`** (`string`): The first line of the address. - **`items[].provider.address.address2`** (`string`): The second line of the address. - **`items[].provider.address.city`** (`string`): The city. - **`items[].provider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].provider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].provider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].provider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].provider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].provider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].provider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].provider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].provider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].provider.payorIdentification`** (`string`): The payer identification. - **`items[].provider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].provider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].provider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].provider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].provider.providerOrgName`** (`string`): The provider's organization name. - **`items[].provider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].provider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].provider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].provider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].provider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber`** (`object`): Common fields shared between subscriber and dependent structures in the eligibility response. - **`items[].subscriber.address`** (`object`) - **`items[].subscriber.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.address.city`** (`string`): The city. - **`items[].subscriber.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.birthSequenceNumber`** (`string`): The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date. - **`items[].subscriber.dateOfBirth`** (`string`): The member's date of birth. - **`items[].subscriber.dateTimePeriod`** (`string`): The military service date. - **`items[].subscriber.dateTimePeriodFormatQualifier`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `D8`, `RD8` - **`items[].subscriber.description`** (`string`): Context that identifies the exact military unit. Used to report military service data. - **`items[].subscriber.employmentStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `AE`, `AO`, `AS`, `AT`, `AU`, `CC`, `DD`, `HD`, `IR`, `LX`, `PE`, `RE`, `RM`, `RR`, `RU` - **`items[].subscriber.endDateTimePeriod`** (`string`): The military service end date. - **`items[].subscriber.entityIdentifier`** (`string`): The entity identifier for the subscriber. - Allowed values: `Insured or Subscriber` - **`items[].subscriber.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.firstName`** (`string`): The member's first name. - **`items[].subscriber.gender`** (`string`) - Allowed values: `M`, `F`, `U` - **`items[].subscriber.governmentServiceAffiliationCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`, `J`, `K`, `L`, `M`, `N`, `O`, `Q`, `R`, `S`, `U`, `W` - **`items[].subscriber.groupDescription`** (`string`): Group name - **`items[].subscriber.groupNumber`** (`string`): The group number associated with the insurance policy. - **`items[].subscriber.healthCareDiagnosisCodes`** (`array of HealthCareDiagnosisCode objects`) - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisCode`** (`string`): The diagnosis code. The decimal points are omitted in diagnosis codes - the decimal point is assumed. - **`items[].subscriber.healthCareDiagnosisCodes[].diagnosisTypeCode`** (`string`): The type of diagnosis code provided. It can be `ABK` - International Classification of Diseases Clinical Modification (ICD-10-CM) Principal Diagnosis or `BK` - International Classification of Diseases Clinical Modification (ICD-9-CM) Principal Diagnosis. - **`items[].subscriber.informationStatusCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A`, `C`, `L`, `O`, `P`, `S`, `T` - **`items[].subscriber.insuredIndicator`** (`string`): Indicates the status of the insured. For the subscriber, this is always `Y`. - Allowed values: `Y` - **`items[].subscriber.lastName`** (`string`): The member's last name. - **`items[].subscriber.maintenanceReasonCode`** (`string`): Code identifying the reason for the changes to subscriber identifying information, such as name, date of birth, or address. This is always `25` Payers may sometimes return other non-compliant values. - Allowed values: `25` - **`items[].subscriber.maintenanceTypeCode`** (`string`): The maintenance type code. Used to acknowledge a change in the identifying elements for the subscriber from those submitted in the original eligibility check request. It can also be included when the payer used the birth sequence number from the original request to locate the subscriber in their system. This is always `001` Payers may sometimes return other non-compliant values. - Allowed values: `001` - **`items[].subscriber.memberId`** (`string`): The member ID for the insurance policy. - **`items[].subscriber.middleName`** (`string`): The member's middle name or initial. - **`items[].subscriber.militaryServiceRankCode`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `A1`, `A2`, `A3`, `B1`, `B2`, `C1`, `C2`, `C3`, `C4`, `C5`, `C6`, `C7`, `C8`, `C9`, `E1`, `F1`, `F2`, `F3`, `F4`, `G1`, `G4`, `L1`, `L2`, `L3`, `L4`, `L5`, `L6`, `M1`, `M2`, `M3`, `M4`, `M5`, `M6`, `P1`, `P2`, `P3`, `P4`, `P5`, `R1`, `R2`, `S1`, `S2`, `S3`, `S4`, `S5`, `S6`, `S7`, `S8`, `S9`, `SA`, `SB`, `SC`, `T1`, `V1`, `W1` - **`items[].subscriber.planDescription`** (`string`): Plan name - **`items[].subscriber.planNetworkDescription`** (`string`): Plan network name - **`items[].subscriber.planNetworkIdNumber`** (`string`): The network identification number associated with the insurance policy. - **`items[].subscriber.planNumber`** (`string`): The plan number associated with the insurance policy. - **`items[].subscriber.relationToSubscriber`** (`string`): The name of the `relationToSubscriberCode`. For the subscriber, this is always `Self`. - Allowed values: `Self` - **`items[].subscriber.relationToSubscriberCode`** (`string`): For the subscriber, this is always `18` for Self. - Allowed values: `18` - **`items[].subscriber.responseProvider`** (`object`): Information about the entity that submitted the original eligibility check request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include at least one identifier, such as the provider's [NPI](https://www.stedi.com/docs/healthcare/national-provider-identifier), tax ID, or EIN. If you left the provider name out of the request, this object typically contains the name that Stedi filled in from the provider's National Plan and Provider Enumeration System (NPPES) record, or `PROVIDER`. - **`items[].subscriber.responseProvider.aaaErrors`** (`array of EligibilityCheckProviderError objects`) - **`items[].subscriber.responseProvider.aaaErrors[].code`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `15`, `41`, `43`, `44`, `45`, `46`, `47`, `48`, `50`, `51`, `79`, `97`, `T4` - **`items[].subscriber.responseProvider.aaaErrors[].description`** (`string`): The error description. - **`items[].subscriber.responseProvider.aaaErrors[].field`** (`string`): The error type, `AAA`. - **`items[].subscriber.responseProvider.aaaErrors[].followupAction`** (`string`): Payers may sometimes return other non-compliant values. - Allowed values: `Please Correct and Resubmit`, `Resubmission Not Allowed`, `Resubmission Allowed`, `Do Not Resubmit; Inquiry Initiated to a Third Party`, `Please Wait 30 Days and Resubmit`, `Please Wait 10 Days and Resubmit`, `Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly` - **`items[].subscriber.responseProvider.aaaErrors[].location`** (`string`): The location of the error within the original X12 EDI response. - **`items[].subscriber.responseProvider.aaaErrors[].possibleResolutions`** (`string`): Information to help you correct the error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** - **`items[].subscriber.responseProvider.address`** (`object`) - **`items[].subscriber.responseProvider.address.address1`** (`string`): The first line of the address. - **`items[].subscriber.responseProvider.address.address2`** (`string`): The second line of the address. - **`items[].subscriber.responseProvider.address.city`** (`string`): The city. - **`items[].subscriber.responseProvider.address.countryCode`** (`string`): The two-letter country code from [Part 1 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - **`items[].subscriber.responseProvider.address.countrySubDivisionCode`** (`string`): The country subdivision code from [Part 2 of ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-2). - **`items[].subscriber.responseProvider.address.postalCode`** (`string`): The United States or Canadian postal code, excluding punctuation and blanks. - **`items[].subscriber.responseProvider.address.state`** (`string`): The US state or Canadian province code with unknown option. For example, `TN` for Tennessee or `NB` for New Brunswick. Payers may sometimes return other non-compliant values. - Allowed values: `NL`, `PE`, `NS`, `NB`, `QC`, `ON`, `MB`, `SK`, `AB`, `BC`, `YT`, `NT`, `NU`, `DC`, `AS`, `GU`, `MP`, `PR`, `UM`, `VI`, `AA`, `AE`, `AP`, `AK`, `AL`, `AR`, `AZ`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `IA`, `ID`, `IL`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MI`, `MN`, `MO`, `MS`, `MT`, `NC`, `ND`, `NE`, `NH`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VA`, `VT`, `WA`, `WI`, `WV`, `WY` - **`items[].subscriber.responseProvider.employersId`** (`string`): Deprecated; The provider's identification number for the entity receiving the benefits information. This shape is deprecated: This property is no longer used. - **`items[].subscriber.responseProvider.entityIdentifier`** (`string`): A code identifying the type of provider. Payers may sometimes return other non-compliant values. - Allowed values: `Provider`, `Third-Party Administrator`, `Employer`, `Hospital`, `Facility`, `Gateway Provider`, `Plan Sponsor`, `Payer` - **`items[].subscriber.responseProvider.entityType`** (`string`): The type of entity. Payers may sometimes return other non-compliant values. - Allowed values: `Person`, `Non-Person Entity` - **`items[].subscriber.responseProvider.federalTaxpayersIdNumber`** (`string`): The Federal Taxpayer Identification Number (also known as an EIN). - **`items[].subscriber.responseProvider.middleName`** (`string`): The provider's middle name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.npi`** (`string`): The provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). - **`items[].subscriber.responseProvider.payorIdentification`** (`string`): The payer identification. - **`items[].subscriber.responseProvider.pharmacyProcessorNumber`** (`string`): The pharmacy processor number. - **`items[].subscriber.responseProvider.providerCode`** (`string`): A code indicating the type of provider. Visit [Eligibility code lists](https://www.stedi.com/docs/healthcare/eligibility-code-lists#provider-codes) for a complete list. Payers may sometimes return other non-compliant values. - Allowed values: `AD`, `AT`, `BI`, `CO`, `CV`, `H`, `HH`, `LA`, `OT`, `P1`, `P2`, `PC`, `PE`, `R`, `RF`, `SB`, `SK`, `SU` - **`items[].subscriber.responseProvider.providerFirstName`** (`string`): The provider's first name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerName`** (`string`): The provider's last name. This applies to providers that are an individual. - **`items[].subscriber.responseProvider.providerOrgName`** (`string`): The provider's organization name. - **`items[].subscriber.responseProvider.referenceIdentification`** (`string`): The Health Care Provider Taxonomy Code. - **`items[].subscriber.responseProvider.serviceProviderNumber`** (`string`): The service provider number. This is an identification number assigned by the payer. - **`items[].subscriber.responseProvider.servicesPlanID`** (`string`): The Centers for Medicare and Medicaid Services (CMS) Plan ID. - **`items[].subscriber.responseProvider.ssn`** (`string`): The Social Security Number (SSN). - **`items[].subscriber.responseProvider.suffix`** (`string`): The provider's name suffix, such as Jr., Sr., or III. - **`items[].subscriber.ssn`** (`string`): The member's Social Security Number (SSN). - **`items[].subscriber.startDateTimePeriod`** (`string`): The military service start date. - **`items[].subscriber.suffix`** (`string`): The name suffix, such as Jr., Sr., or III. - **`items[].subscriber.uniqueHealthIdentifier`** (`string`): The member's unique health identifier. - **`meta`** (`object`): Metadata about the response. Stedi uses this data for tracking and troubleshooting. - **`meta.applicationMode`** (`string`): The type of data in the request. This is either `production` when you send a request with a standard API key or `test` when you send a request in test mode with a [test API key](https://www.stedi.com/docs/api-reference/index#api-key-types). The `information` value is not currently used. Payers may sometimes return other non-compliant values. - Allowed values: `production`, `test`, `information` - **`meta.traceId`** (`string`): The unique ID Stedi assigns to this request. - **`status`** (`string`) - Allowed values: `PENDING`, `COMPLETE`, `ERROR` - **`warnings`** (`array of Warning objects`): Issues with your insurance discovery check that may affect the results. For example, Stedi issues a warning when enrolling with a payer would improve the results for future requests. - **`warnings[].code`** (`string`): The warning code. - **`warnings[].description`** (`string`): The warning description. **Example:** ```json { "coveragesFound": 0, "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "items": [], "meta": { "applicationMode": "production", "traceId": "1-abcdef12-123456789abcdef123456789" }, "status": "ERROR" } ``` #### 503 ServiceUnavailableException 503 response **Schema:** `ServiceUnavailableExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) #### 504 GatewayTimeoutException 504 response **Schema:** `GatewayTimeoutExceptionResponseContent` **Properties:** - **`code`** (`string`) - **`message`** (`string`) (required) # Validate Professional Claim (CMS-1500) JSON Source: https://www.stedi.com/docs/healthcare/api-reference/post-validate-professional-claim-json Validate 837P professional claims using a JSON request structure that follows the [CMS-1500 paper form](https://www.nucc.org/index.php/1500-claim-form-mainmenu-35) layout without submitting them to payers. This endpoint runs the same validation checks as the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint, including payer validation, [claim edits and repairs](/healthcare/claim-edits-and-repairs), and mapping. However, this endpoint doesn't submit the claim to payers. You can use this endpoint to validate claims before submission. It helps you catch errors early when building claim submission forms or testing your integration. 1. Call this endpoint with a JSON payload. 2. Stedi validates your request. 3. The endpoint returns an HTTP `200` whether Stedi's edits pass or fail. Monitor the response shape for failures: - **Success:** The endpoint returns an empty response when the claim passes Stedi's edits. - **Failures:** The endpoint returns an `errors` array when the claim fails one or more of Stedi's edits. Address all issues in the `errors` array before submitting the claim through the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint. ## API Specification Validate a professional claim in the Stedi JSON format without submitting it **Endpoint:** `POST /professional-claim-submissions/validate` **Base URL:** `https://claims.us.stedi.com/2025-03-07` ### Request Body **Schema:** `ValidateProfessionalClaimSubmissionRequestContent` **Properties:** - **`authorization`** (`object`) (required): Signature and assignment-of-benefits indicators for the claim. - **`authorization.insuredAuthorizesAssignment`** (`string`) (required): Whether the insured has authorized payment of benefits directly to the provider. - `YES`: The insured has authorized assignment of benefits. - `NO`: The insured has not authorized assignment of benefits. - `NOT_APPLICABLE`: Assignment of benefits does not apply, typically because there is no signature on file. - Allowed values: `NO`, `NOT_APPLICABLE`, `YES` - **`authorization.patientReleasesMedicalInfo`** (`string`) (required): Whether the provider has the patient's authorization to release medical information needed to process the claim. - `YES`: The provider has the patient's signed authorization to release medical information. - `INFORMED_CONSENT`: The provider has informed consent to release medical information, but the signed authorization has not been obtained. - Allowed values: `INFORMED_CONSENT`, `YES` - **`authorization.providerAcceptsAssignment`** (`string`) (required): Whether the billing provider agrees to be paid under the payer's terms. - `ASSIGNED`: The provider accepts assignment and agrees to accept the payer's payment as payment in full, minus any patient responsibility. - `NOT_ASSIGNED`: The provider does not accept assignment. The payer typically sends payment directly to the patient, who is then responsible for reimbursing the provider. - `CLINICAL_LAB_ONLY`: The provider accepts assignment for clinical laboratory services only. This is uncommon. - Allowed values: `ASSIGNED`, `CLINICAL_LAB_ONLY`, `NOT_ASSIGNED` - **`authorization.providerSignature`** (`string`) (required): Whether the provider has the rendering provider's signature on file. - `ON_FILE`: The provider has the rendering provider's signature on file. - `NOT_ON_FILE`: The provider does not have the rendering provider's signature on file. - Allowed values: `ON_FILE`, `NOT_ON_FILE` - **`billing`** (`object`) (required): Billing details for the claim, including the billing provider, service facility, tax identification, and charges. - **`billing.amountPaid`** (`string`): **[CMS-1500 Box 29]** The total amount the patient, or the patient's representative, has already paid toward services in this claim. This is the patient's payment only. Don't include amounts paid by other payers. - **`billing.billingProvider`** (`object`) (required): The person or organization that will receive payment for the claim from the payer. - **`billing.billingProvider.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`billing.billingProvider.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billing.billingProvider.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billing.billingProvider.address.city`** (`string`) (required): The city name. - **`billing.billingProvider.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`billing.billingProvider.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`billing.billingProvider.contact`** (`object`): A person or department to contact, with up to one phone number, email address, and fax number. Provide at least one way to reach the contact. - **`billing.billingProvider.contact.email`** (`string`): The contact's email address. - **`billing.billingProvider.contact.faxNumber`** (`string`): The contact's fax number. - **`billing.billingProvider.contact.name`** (`string`): The name of the contact person or department. When omitted, questions are directed to the entity itself. - **`billing.billingProvider.contact.phoneExtension`** (`string`): The extension for `phoneNumber`. - **`billing.billingProvider.contact.phoneNumber`** (`string`): The contact's phone number. - **`billing.billingProvider.identifiers`** (`object`): Identifiers for the billing provider. - **`billing.billingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 33b]** A commercial number assigned to the billing provider by the payer. Include only when the payer requires it in addition to the NPI, or when the provider has no NPI. - **`billing.billingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 33b]** A location number assigned to the billing provider by the payer. Include only when the payer requires it in addition to the NPI, or when the provider has no NPI. - **`billing.billingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 33a]** The billing provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). When the billing provider isn't assigned an NPI, supply `commercialNumber` or `locationNumber` instead. - **`billing.billingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 33b]** The billing provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`billing.billingProvider.identifiers.taxonomyCode`** (`string`): **[CMS-1500 Box 33b]** The billing provider's taxonomy code from the National Uniform Claim Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/), which identifies the provider's type and specialty. - **`billing.billingProvider.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`billing.billingProvider.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`billing.billingProvider.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`billing.billingProvider.name (variant 2).person.firstName`** (`string`): The person's first name. - **`billing.billingProvider.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`billing.billingProvider.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`billing.billingProvider.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`billing.patientControlNumber`** (`string`) (required): **[CMS-1500 Box 26]** The patient control number, a unique tracking ID you assign to the claim so you can correlate it with responses from the payer. The payer returns this ID in claim acknowledgments, Electronic Remittance Advice (ERAs), and claim status checks. We recommend using a random, 17-character alphanumeric string. - **`billing.serviceFacility`** (`object`): The facility where the patient received care, also called the service facility location. The address should be a physical location. - **`billing.serviceFacility.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`billing.serviceFacility.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`billing.serviceFacility.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`billing.serviceFacility.address.city`** (`string`) (required): The city name. - **`billing.serviceFacility.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`billing.serviceFacility.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`billing.serviceFacility.identifiers`** (`object`): Identifiers for the service facility. - **`billing.serviceFacility.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 32b]** A commercial number assigned to the facility by the payer. Include only when the payer requires it in addition to the NPI. - **`billing.serviceFacility.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 32b]** A location number assigned to the facility by the payer. Include only when the payer requires it in addition to the NPI. - **`billing.serviceFacility.identifiers.npi`** (`string`): **[CMS-1500 Box 32a]** The facility's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). Only required when the facility's NPI differs from the billing provider's NPI. Don't include when the service facility is the patient's home. - **`billing.serviceFacility.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 32b]** The facility's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`billing.serviceFacility.name`** (`any`) (required): A name that belongs to an organization. - **`billing.serviceFacility.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`billing.taxId`** (`any`) (required): The billing provider's federal tax identification number. Provide exactly one of `ein` or `ssn`. - **`billing.taxId (variant 1).ssn`** (`string`) (required): The billing provider's Social Security Number. Must be a string of exactly nine numbers with no separators. If you provide this, don't provide `ein`. - **`billing.taxId (variant 2).ein`** (`string`) (required): The billing provider's Employer Identification Number (EIN). Typically a string of exactly nine numbers with no separators, unless otherwise instructed by the payer. If you provide this, don't provide `ssn`. - **`billing.totalCharge`** (`string`) (required): **[CMS-1500 Box 28]** The total charge for the claim, equal to the sum of all service line charges. It is acceptable to set this to `0` (zero). - **`encounter`** (`object`) (required): Clinical details about the encounter, including diagnoses, related providers, relevant dates, and supporting information. - **`encounter.additionalDiagnosisCodes`** (`array of strings`): **[CMS-1500 Box 21]** Additional diagnoses for the claim beyond `primaryDiagnosisCode`, in order of importance. Use this for diagnoses that apply to the claim but are not tied to a specific service line; you don't need to repeat codes that already appear in a service line's `diagnosisCodes`. Stedi places these directly after the primary diagnosis in the claim's diagnosis list. - Use valid, billable codes at the highest level of specificity available. - Don't submit the decimal point (e.g., submit `I639` not `I63.9`). - Don't submit header codes (codes with fewer than three characters, such as `E10` for Type 1 diabetes). - **`encounter.attachments`** (`array of ProfessionalClaimSubmissionAttachment objects`): **[CMS-1500 Box 19]** Supporting documentation attached to the claim, such as medical records or operative notes. Include only when required by the payer. - **`encounter.attachments[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`encounter.attachments[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is required when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`encounter.attachments[].reportTypeCode`** (`string`) (required): The type of report being attached to the claim. Visit [Attachment report type codes](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of values and their descriptions. - Allowed values: `REPORT_JUSTIFYING_TREATMENT`, `DRUGS_ADMINISTERED`, `TREATMENT_DIAGNOSIS`, `INITIAL_ASSESSMENT`, `FUNCTIONAL_GOALS`, `PLAN_OF_TREATMENT`, `PROGRESS_REPORT`, `CONTINUED_TREATMENT`, `CHEMICAL_ANALYSIS`, `CERTIFIED_TEST_REPORT`, `JUSTIFICATION_FOR_ADMISSION`, `RECOVERY_PLAN`, `ALLERGIES_SENSITIVITIES`, `AUTOPSY_REPORT`, `AMBULANCE_CERTIFICATION`, `ADMISSION_SUMMARY`, `PRESCRIPTION`, `PHYSICIAN_ORDER`, `REFERRAL_FORM`, `BENCHMARK_TESTING_RESULTS`, `BASELINE`, `BLANKET_TEST_RESULTS`, `CHIROPRACTIC_JUSTIFICATION`, `CONSENT_FORMS`, `CERTIFICATION`, `DRUG_PROFILE`, `DENTAL_MODELS`, `DME_PRESCRIPTION`, `DIAGNOSTIC_REPORT`, `DISCHARGE_MONITORING`, `DISCHARGE_SUMMARY`, `EXPLANATION_OF_BENEFITS`, `HEALTH_CERTIFICATE`, `HEALTH_CLINIC_RECORDS`, `IMMUNIZATION_RECORD`, `STATE_IMMUNIZATION_RECORDS`, `LABORATORY_RESULTS`, `MEDICAL_RECORD_ATTACHMENT`, `MODELS`, `NURSING_NOTES`, `OPERATIVE_NOTE`, `OXYGEN_CONTENT_AVERAGING`, `ORDERS_TREATMENTS`, `PHYSICAL_EXAMINATION`, `OXYGEN_THERAPY_CERTIFICATION`, `SUPPORT_DATA`, `PATHOLOGY_REPORT`, `MEDICAL_HISTORY`, `PARENTERAL_ENTERAL_CERTIFICATION`, `PHYSICAL_THERAPY_NOTES`, `PROSTHETICS_ORTHOTIC_CERTIFICATION`, `PARAMEDICAL_RESULTS`, `PHYSICIAN_REPORT`, `PHYSICAL_THERAPY_CERTIFICATION`, `RADIOLOGY_FILMS`, `RADIOLOGY_REPORTS`, `TESTS_ANALYSIS_REPORT`, `RENEWABLE_OXYGEN_CONTENT`, `SYMPTOMS_DOCUMENT`, `DEATH_NOTIFICATION`, `PHOTOGRAPHS` - **`encounter.attachments[].transmissionCode`** (`string`) (required): How an attachment is transmitted to the payer. - `ELECTRONICALLY_ONLY`: The attachment is sent electronically only. - `BY_MAIL`: The attachment is sent by mail. - `BY_FAX`: The attachment is sent by fax. - `EMAIL`: The attachment is sent by email. - `FILE_TRANSFER`: The attachment is sent by file transfer. - `AVAILABLE_ON_REQUEST`: The attachment is held by the provider and made available to the payer on request. - Allowed values: `AVAILABLE_ON_REQUEST`, `BY_MAIL`, `ELECTRONICALLY_ONLY`, `EMAIL`, `FILE_TRANSFER`, `BY_FAX` - **`encounter.claimCodes`** (`array of strings`): **[CMS-1500 Box 10d]** Up to four National Uniform Claim Committee (NUCC) condition codes. A condition code is a two-character code that provides extra information about the patient's condition or the claim itself, such as whether the claim is part of disaster relief. For a list, visit the [NUCC Condition Codes](https://www.nucc.org/index.php/code-sets-mainmenu-41/condition-codes-mainmenu-38). - **`encounter.claimNote`** (`any`): **[CMS-1500 Box 19]** A free-text note with additional information about the claim. Provide exactly one note type. - **`encounter.claimNote (variant 1).additionalInformation`** (`string`) (required): Additional information that helps explain the claim, such as a special billing situation or extra context. Don't use this to describe unspecified procedure codes. - **`encounter.claimNote (variant 2).certificationNarrative`** (`string`) (required): A narrative that certifies medical necessity or another payer-required certification. - **`encounter.claimNote (variant 3).goalsRehabilitationOrDischargePlans`** (`string`) (required): Therapy or rehabilitation notes summarizing goals, rehabilitation potential, or discharge plans. - **`encounter.claimNote (variant 4).diagnosisDescription`** (`string`) (required): A description of the diagnosis, usually provided to clarify an unspecified or unlisted procedure code. - **`encounter.claimNote (variant 5).thirdPartyOrganization`** (`string`) (required): Information about a third-party organization related to the claim. - **`encounter.clinicalDates`** (`object`): Dates relevant to the patient's condition and care. Include only the dates that apply to the claim. - **`encounter.clinicalDates.accident`** (`string`): **[CMS-1500 Box 15]** The date of the accident related to this claim. Required when `patientCondition.isAutoAccidentRelated` or `patientCondition.isOtherAccidentRelated` is `true`, and when the condition is employment-related and resulted from an accident. - **`encounter.clinicalDates.acuteManifestationOfChronicCondition`** (`string`): **[CMS-1500 Box 15]** The date the patient first experienced acute symptoms of a chronic condition. Required for certain spinal manipulation claims billed to Medicare. - **`encounter.clinicalDates.assumedCare`** (`string`): **[CMS-1500 Box 15]** The date the provider assumed care of the patient, for shared-care arrangements. - **`encounter.clinicalDates.firstVisitOrConsultation`** (`string`): **[CMS-1500 Box 15]** The date of the patient's first visit or consultation, when required by the payer. - **`encounter.clinicalDates.hospitalization`** (`object`): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`encounter.clinicalDates.hospitalization.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`encounter.clinicalDates.hospitalization.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`encounter.clinicalDates.initialTreatment`** (`string`): **[CMS-1500 Box 15]** The date the patient first received treatment for the current condition. Required when this date impacts adjudication for services such as spinal manipulation, physical or occupational therapy, or pregnancy. - **`encounter.clinicalDates.lastMenstrualPeriod`** (`string`): **[CMS-1500 Box 14]** The date of the patient's last menstrual period (LMP) before pregnancy. Provide for claims related to a pregnancy. - **`encounter.clinicalDates.lastSeen`** (`string`): **[CMS-1500 Box 15]** The date the patient was last seen by the attending or supervising physician for the qualifying condition. Required for routine foot care services when this date impacts adjudication. - **`encounter.clinicalDates.lastWorked`** (`string`): **[CMS-1500 Box 15]** The last date the patient worked, for disability or workers' compensation claims. - **`encounter.clinicalDates.lastXray`** (`string`): **[CMS-1500 Box 15]** The date of the patient's last X-ray, for claims related to spinal manipulation. - **`encounter.clinicalDates.onsetOfCurrentIllness`** (`string`): **[CMS-1500 Box 14]** The date the patient first experienced acute symptoms of the current illness or injury. Required when a service in the claim is the first for a new illness or injury, when the claim is related to an employment or accident condition, or when the payer requires it. For an emergency, provide this date when it is known and differs from the date of service. - **`encounter.clinicalDates.prescription`** (`string`): **[CMS-1500 Box 15]** The date of the patient's hearing or vision prescription. Required for claims billing hearing devices or vision frames and lenses. - **`encounter.clinicalDates.relinquishedCare`** (`string`): **[CMS-1500 Box 15]** The date the provider relinquished care of the patient, for shared-care arrangements. - **`encounter.clinicalDates.repricerReceived`** (`string`): **[CMS-1500 Box 15]** The date the repricer received the claim, when applicable. - **`encounter.clinicalDates.returnedToWork`** (`string`): **[CMS-1500 Box 15]** The date the patient returned to work, for disability or workers' compensation claims. - **`encounter.clinicalDates.unableToWork`** (`object`): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`encounter.clinicalDates.unableToWork.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`encounter.clinicalDates.unableToWork.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`encounter.epsdtReferralCodes`** (`array of strings`): **[CMS-1500 Box 24h]** Early and Periodic Screening, Diagnosis, and Treatment (EPSDT) referral condition indicators for the claim. EPSDT is a Medicaid program that provides preventive health care services for children under age 21. - Include when the claim bills an EPSDT screening service, with the referral outcome of the screening. - Use `NOT_USED` when the screening did not result in a referral. - Mark services that resulted from a screening with `serviceLines[].isEpsdtRelated`. - **`encounter.patientCondition`** (`object`): Whether the patient's illness or injury is related to employment or an accident. - **`encounter.patientCondition.autoAccidentState`** (`string`): **[CMS-1500 Box 10b]** The two-letter state code where the automobile accident occurred. Required when `isAutoAccidentRelated` is `true`. - **`encounter.patientCondition.isAutoAccidentRelated`** (`boolean`): **[CMS-1500 Box 10b]** Whether the patient's condition is related to an automobile accident. When `true`, set `autoAccidentState`. Other insurance, such as automobile liability coverage, may be the primary payer. - **`encounter.patientCondition.isEmploymentRelated`** (`boolean`): **[CMS-1500 Box 10a]** Whether the patient's condition is related to their employment. - **`encounter.patientCondition.isOtherAccidentRelated`** (`boolean`): **[CMS-1500 Box 10c]** Whether the patient's condition is related to an accident other than an automobile accident. - **`encounter.primaryDiagnosisCode`** (`string`) (required): **[CMS-1500 Box 21]** The principal diagnosis for the claim, which describes the main reason for the encounter. Must be an [ICD-10-CM code](https://www.cdc.gov/nchs/icd/icd-10-cm/index.html). Stedi combines this with `additionalDiagnosisCodes` and the diagnosis codes on the service lines to form the claim's diagnosis list, which can hold at most 12 codes. - Use valid, billable codes at the highest level of specificity available. - Don't submit the decimal point (e.g., submit `I639` not `I63.9`). - Don't submit header codes (codes with fewer than three characters, such as `E10` for Type 1 diabetes). - **`encounter.primaryPlaceOfService`** (`string`): The primary place of service code identifying where the services were rendered. When omitted, it is inferred from the most common place of service across the claim's service lines. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`encounter.priorReferringProvider`** (`object`): A provider involved in referring the patient for the care on this claim. Each provider should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`encounter.priorReferringProvider.identifiers`** (`object`): Identifiers for a referring provider. - **`encounter.priorReferringProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the referring provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.priorReferringProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The referring provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`encounter.priorReferringProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The referring provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`encounter.priorReferringProvider.name`** (`any`) (required): A name that belongs to a person. - **`encounter.priorReferringProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`encounter.priorReferringProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`encounter.priorReferringProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`encounter.priorReferringProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`encounter.priorReferringProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`encounter.referenceNumbers`** (`object`): Payer-issued reference numbers that apply to the entire claim. - **`encounter.referenceNumbers.clia`** (`string`): **[CMS-1500 Box 23]** The Clinical Laboratory Improvement Amendments (CLIA) certification number. Required for all CLIA-certified facilities performing CLIA-covered laboratory services. When the claim contains both in-house and outsourced laboratory services, use the CLIA number for services performed by the billing or rendering provider. - **`encounter.referenceNumbers.mammographyCertification`** (`string`): **[CMS-1500 Box 23]** The facility's six-digit FDA Mammography Quality Standards Act (MQSA) certification number. Required when mammography services are rendered by a certified mammography provider. - **`encounter.referenceNumbers.priorAuthorization`** (`string`): **[CMS-1500 Box 23]** A payer-issued prior authorization number that approves the services on this claim. Required when the payer or Utilization Management Organization (UMO) assigned an authorization number and the services were preauthorized. To override this for a specific service line, set `serviceLines[].priorAuthorizations` instead. - **`encounter.referenceNumbers.referral`** (`string`): **[CMS-1500 Box 23]** A referral number for the provider referral tied to the services on this claim. Required when the payer or Utilization Management Organization (UMO) assigned a referral number and a referral is involved. - **`encounter.referringProvider`** (`object`): A provider involved in referring the patient for the care on this claim. Each provider should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`encounter.referringProvider.identifiers`** (`object`): Identifiers for a referring provider. - **`encounter.referringProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the referring provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.referringProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The referring provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`encounter.referringProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The referring provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`encounter.referringProvider.name`** (`any`) (required): A name that belongs to a person. - **`encounter.referringProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`encounter.referringProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`encounter.referringProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`encounter.referringProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`encounter.referringProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`encounter.resubmission`** (`object`): Information identifying this claim as a replacement or cancellation of a previously submitted claim. - **`encounter.resubmission.code`** (`string`): Whether this claim replaces or cancels a previously submitted claim. - `REPLACEMENT_OF_PRIOR_CLAIM`: This claim replaces a previously submitted claim. - `CANCELLATION_OF_PRIOR_CLAIM`: This claim cancels, or voids, a previously submitted claim. - Allowed values: `REPLACEMENT_OF_PRIOR_CLAIM`, `CANCELLATION_OF_PRIOR_CLAIM` - **`encounter.resubmission.originalReferenceNumber`** (`string`): The Payer Claim Control Number (sometimes called the ICN) of the original claim being replaced or cancelled. Generally required when `code` is set. One exception is Original Medicare, which specifies that you omit this value from resubmissions. - **`encounter.supervisingProvider`** (`object`): The provider who oversaw the rendering provider and the care reported in this claim. This should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`encounter.supervisingProvider.identifiers`** (`object`): Identifiers for a supervising provider. - **`encounter.supervisingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the supervising provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.supervisingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 17a]** A location number assigned to the supervising provider by the payer. Include only when the payer requires it in addition to the NPI. - **`encounter.supervisingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The supervising provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`encounter.supervisingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The supervising provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`encounter.supervisingProvider.name`** (`any`) (required): A name that belongs to a person. - **`encounter.supervisingProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`encounter.supervisingProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`encounter.supervisingProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`encounter.supervisingProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`encounter.supervisingProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`insured`** (`object`) (required): The person or entity that carries the insurance policy being billed, also called the subscriber or primary policyholder. May be different from the patient. - **`insured.address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`insured.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`insured.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`insured.address.city`** (`string`) (required): The city name. - **`insured.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`insured.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`insured.dateOfBirth`** (`string`): **[CMS-1500 Box 11a]** The insured's date of birth. Used to distinguish the insured from other members with similar names. - **`insured.gender`** (`string`): A code indicating the person's sex. - `MALE`: Male. - `FEMALE`: Female. - `UNKNOWN`: Unknown. Use when the person declines to answer or does not identify as male or female. Note that some payers may reject the claim if the sex doesn't match what they have in their member records. - Allowed values: `MALE`, `FEMALE`, `UNKNOWN` - **`insured.insuranceType`** (`string`) (required): The type of health insurance plan being billed. Pick the type that best matches the plan and payer. For most commercial payers, use `OTHER`. - `MEDICARE`: Original Medicare. Don't use this for Medicare Advantage plans – use `OTHER` instead. - `MEDICAID`: Medicaid. - `TRICARE`: TRICARE, the U.S. Department of Defense's health care program for military members and their families. - `CHAMPVA`: CHAMPVA, the Civilian Health and Medical Program of the Department of Veterans Affairs, which covers spouses and dependents of certain disabled or deceased veterans. - `FECA_BLK_LUNG`: Workers' compensation, FECA, or Black Lung coverage for workers injured on the job. FECA stands for the Federal Employees' Compensation Act. - `OTHER`: Any other plan type, including commercial payers and Medicare Advantage. Use this for most claims. - Allowed values: `MEDICARE`, `MEDICAID`, `TRICARE`, `CHAMPVA`, `FECA_BLK_LUNG`, `OTHER` - **`insured.memberId`** (`string`): **[CMS-1500 Box 1a]** The member ID for the insured's insurance policy, typically found on the insurance card. For Medicare claims, this is the insured's Medicare Beneficiary Identifier (MBI). - **`insured.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`insured.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`insured.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`insured.name (variant 2).person.firstName`** (`string`): The person's first name. - **`insured.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`insured.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`insured.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`insured.paymentResponsibilityLevelCode`** (`string`) (required): The payer's responsibility level for the claim. - `PRIMARY`: The payer is the primary payer for this claim. - Allowed values: `PRIMARY` - **`insured.planName`** (`string`): **[CMS-1500 Box 11c]** The name of the insured's insurance plan, typically found on the insurance card. - **`insured.policyOrGroupNumber`** (`string`): **[CMS-1500 Box 11]** The payer's code for the employer or other party that purchased the plan, typically found on the insurance card. For workers' compensation claims, use the Federal Employees' Compensation Act (FECA) number for the case. - **`insured.propertyCasualtyClaimNumber`** (`string`): **[CMS-1500 Box 11b]** The claim number assigned by a property or casualty insurer. Include for workers' compensation, automobile accident, or other liability claims when the payer requires it. - **`insured.ssn`** (`string`): **[CMS-1500 Box 11b]** The insured's Social Security Number. Only include when specifically instructed by a payer. - **`otherInsured`** (`array of ProfessionalClaimSubmissionOtherInsured objects`): **[CMS-1500 Box 9, 9a, 9d]** Coverage the patient holds under another insurance policy, relevant to coordination of benefits. Include this when the patient has coverage from another payer in addition to the one you're billing. - **`otherInsured[].address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`otherInsured[].address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`otherInsured[].address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`otherInsured[].address.city`** (`string`) (required): The city name. - **`otherInsured[].address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`otherInsured[].address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`otherInsured[].authorization`** (`object`) (required): Signature and assignment-of-benefits indicators for coverage under another policy. - **`otherInsured[].authorization.insuredAuthorizesAssignment`** (`string`) (required): Whether the insured has authorized payment of benefits directly to the provider. - `YES`: The insured has authorized assignment of benefits. - `NO`: The insured has not authorized assignment of benefits. - `NOT_APPLICABLE`: Assignment of benefits does not apply, typically because there is no signature on file. - Allowed values: `NO`, `NOT_APPLICABLE`, `YES` - **`otherInsured[].authorization.patientReleasesMedicalInfo`** (`string`) (required): Whether the provider has the patient's authorization to release medical information needed to process the claim. - `YES`: The provider has the patient's signed authorization to release medical information. - `INFORMED_CONSENT`: The provider has informed consent to release medical information, but the signed authorization has not been obtained. - Allowed values: `INFORMED_CONSENT`, `YES` - **`otherInsured[].authorization.providerGeneratedPatientSignature`** (`boolean`): Whether the provider generated the patient's signature because the patient was physically unable to sign. - **`otherInsured[].claimFilingIndicator`** (`string`) (required): The type of plan or payer that other coverage is filed under. - `MEDICARE_PART_A`: Medicare Part A. - `MEDICARE_PART_B`: Medicare Part B. - `MEDICAID`: Medicaid. - `TRICARE`: TRICARE. - `BLUE_CROSS_BLUE_SHIELD`: Blue Cross Blue Shield. - `COMMERCIAL_INSURANCE`: A commercial insurance company. - `HEALTH_MAINTENANCE_ORGANIZATION`: A health maintenance organization (HMO). - `HMO_MEDICARE_RISK`: An HMO Medicare risk plan. - `PREFERRED_PROVIDER_ORGANIZATION`: A preferred provider organization (PPO). - `POINT_OF_SERVICE`: A point-of-service (POS) plan. - `EXCLUSIVE_PROVIDER_ORGANIZATION`: An exclusive provider organization (EPO). - `INDEMNITY_INSURANCE`: An indemnity insurance plan. - `DENTAL_MAINTENANCE_ORGANIZATION`: A dental maintenance organization. - `AUTOMOBILE_MEDICAL`: Automobile medical coverage. - `LIABILITY_MEDICAL`: Liability medical coverage. - `DISABILITY`: Disability coverage. - `WORKERS_COMPENSATION_HEALTH_CLAIM`: A workers' compensation health claim. - `FEDERAL_EMPLOYEES_PROGRAM`: The Federal Employees Program. - `OTHER_FEDERAL_PROGRAM`: Another federal program. - `OTHER_NON_FEDERAL_PROGRAMS`: Another non-federal program. - `TITLE_V`: A Title V program. - `VETERANS_AFFAIRS_PLAN`: A Veterans Affairs plan. - `MUTUALLY_DEFINED`: A mutually defined plan type agreed on with the payer. - Allowed values: `OTHER_NON_FEDERAL_PROGRAMS`, `PREFERRED_PROVIDER_ORGANIZATION`, `POINT_OF_SERVICE`, `EXCLUSIVE_PROVIDER_ORGANIZATION`, `INDEMNITY_INSURANCE`, `HMO_MEDICARE_RISK`, `DENTAL_MAINTENANCE_ORGANIZATION`, `AUTOMOBILE_MEDICAL`, `BLUE_CROSS_BLUE_SHIELD`, `TRICARE`, `COMMERCIAL_INSURANCE`, `DISABILITY`, `FEDERAL_EMPLOYEES_PROGRAM`, `HEALTH_MAINTENANCE_ORGANIZATION`, `LIABILITY_MEDICAL`, `MEDICARE_PART_A`, `MEDICARE_PART_B`, `MEDICAID`, `OTHER_FEDERAL_PROGRAM`, `TITLE_V`, `VETERANS_AFFAIRS_PLAN`, `WORKERS_COMPENSATION_HEALTH_CLAIM`, `MUTUALLY_DEFINED` - **`otherInsured[].medicareSecondaryInsuranceType`** (`string`): The reason the other coverage makes Medicare the secondary payer. - `WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EGHP`: A working aged beneficiary or spouse covered by an employer group health plan. - `END_STAGE_RENAL_DISEASE_IN_MANDATED_COORDINATION_PERIOD_WITH_EGHP`: End-stage renal disease coverage during the mandated coordination period with an employer group health plan. - `NO_FAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`: No-fault insurance, including automobile coverage, is primary. - `WORKERS_COMPENSATION`: Workers' compensation is primary. - `PUBLIC_HEALTH_SERVICE_OR_OTHER_FEDERAL_AGENCY`: A public health service or other federal agency is primary. - `BLACK_LUNG`: Black Lung benefits are primary. - `VETERANS_ADMINISTRATION`: Veterans Administration coverage is primary. - `DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LGHP`: A disabled beneficiary under age 65 covered by a large group health plan. - `OTHER_LIABILITY_INSURANCE_IS_PRIMARY`: Other liability insurance is primary. - Allowed values: `WORKING_AGED_BENEFICIARY_OR_SPOUSE_WITH_EGHP`, `END_STAGE_RENAL_DISEASE_IN_MANDATED_COORDINATION_PERIOD_WITH_EGHP`, `NO_FAULT_INSURANCE_INCLUDING_AUTO_IS_PRIMARY`, `WORKERS_COMPENSATION`, `PUBLIC_HEALTH_SERVICE_OR_OTHER_FEDERAL_AGENCY`, `BLACK_LUNG`, `VETERANS_ADMINISTRATION`, `DISABLED_BENEFICIARY_UNDER_AGE_65_WITH_LGHP`, `OTHER_LIABILITY_INSURANCE_IS_PRIMARY` - **`otherInsured[].memberId`** (`string`) (required): **[CMS-1500 Box 9]** The member ID for the other policy. - **`otherInsured[].name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`otherInsured[].name (variant 1).organization`** (`string`) (required): The organization's business name. - **`otherInsured[].name (variant 2).person`** (`object`) (required): The name of an individual person. - **`otherInsured[].name (variant 2).person.firstName`** (`string`): The person's first name. - **`otherInsured[].name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`otherInsured[].name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`otherInsured[].name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`otherInsured[].otherPayer`** (`object`) (required): The payer that provides coverage under another policy. - **`otherInsured[].otherPayer.id`** (`any`) (required): An identifier for the other payer. Provide exactly one. - **`otherInsured[].otherPayer.id (variant 1).payerId`** (`string`) (required): The other payer's payer identification number. - **`otherInsured[].otherPayer.id (variant 2).cmsPlanId`** (`string`) (required): The other payer's CMS plan ID, such as a Health Plan ID (HPID) or Other Entity Identifier (OEID). - **`otherInsured[].otherPayer.name`** (`any`) (required): A name that belongs to an organization. - **`otherInsured[].otherPayer.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`otherInsured[].planName`** (`string`): **[CMS-1500 Box 9d]** The name of the other insurance plan. - **`otherInsured[].policyOrGroupNumber`** (`string`): **[CMS-1500 Box 9a]** The policy or group number for the other coverage. - **`otherInsured[].relationshipToInsured`** (`string`) (required): How the patient is related to the person insured under the other policy. - `SELF`: The patient is the other insured. - `SPOUSE`: The patient is the other insured's spouse. - `CHILD`: The patient is the other insured's child. - `EMPLOYEE`: The patient is the other insured's employee. - `LIFE_PARTNER`: The patient is the other insured's life partner. - `ORGAN_DONOR`: The patient is an organ donor. - `CADAVER_DONOR`: The patient is a cadaver donor. - `OTHER_RELATIONSHIP`: The patient has another relationship to the other insured. - `UNKNOWN`: The relationship is unknown. - Allowed values: `SPOUSE`, `SELF`, `CHILD`, `EMPLOYEE`, `UNKNOWN`, `ORGAN_DONOR`, `CADAVER_DONOR`, `LIFE_PARTNER`, `OTHER_RELATIONSHIP` - **`otherInsured[].responsibilityLevel`** (`string`) (required): A payer's responsibility level for a claim. - `PRIMARY`: The primary payer. - `SECONDARY`: The secondary payer. - `TERTIARY`: The tertiary payer. - Allowed values: `PRIMARY`, `SECONDARY`, `TERTIARY` - **`otherInsured[].ssn`** (`string`): The Social Security Number of the person insured under the other policy. Only include when specifically instructed by a payer. - **`patient`** (`object`): The person who received care, when they are someone other than the insured. - **`patient.address`** (`object`) (required): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`patient.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`patient.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`patient.address.city`** (`string`) (required): The city name. - **`patient.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`patient.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`patient.dateOfBirth`** (`string`) (required): **[CMS-1500 Box 3]** The patient's date of birth. Used to distinguish the patient from other members with similar names. - **`patient.gender`** (`string`) (required): A code indicating the person's sex. - `MALE`: Male. - `FEMALE`: Female. - `UNKNOWN`: Unknown. Use when the person declines to answer or does not identify as male or female. Note that some payers may reject the claim if the sex doesn't match what they have in their member records. - Allowed values: `MALE`, `FEMALE`, `UNKNOWN` - **`patient.name`** (`any`) (required): A name that belongs to a person. - **`patient.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`patient.name (variant 1).person.firstName`** (`string`): The person's first name. - **`patient.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`patient.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`patient.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`patient.relationshipToInsured`** (`string`) (required): How the patient is related to the insured. - `SPOUSE`: The patient is the insured's spouse. - `CHILD`: The patient is the insured's child. - `EMPLOYEE`: The patient is the insured's employee, typically for workers' compensation claims where the insured is the employer. - `OTHER_RELATIONSHIP`: The patient has another relationship to the insured. - Allowed values: `SPOUSE`, `CHILD`, `EMPLOYEE`, `OTHER_RELATIONSHIP` - **`payer`** (`object`) (required): The payer being billed for the claim. - **`payer.address`** (`object`): A mailing address. For United States addresses, use the full nine-digit ZIP code with no separators, such as `100031502`. If you don't know the full ZIP code, you can find it using the [USPS ZIP Code Lookup](https://tools.usps.com/zip-code-lookup.htm) tool. - **`payer.address.addressLine1`** (`string`) (required): The first line of the street address. This typically contains the building number and street name. - **`payer.address.addressLine2`** (`string`): The second line of the street address. This typically contains the apartment or suite number. - **`payer.address.city`** (`string`) (required): The city name. - **`payer.address.postalCode`** (`string`): The postal or ZIP code, with no separators or spaces. For United States addresses, use the full nine-digit ZIP code, such as `100031502`. - **`payer.address.state`** (`string`): The two-letter state or province code. Required when the city is in the United States or Canada. - **`payer.id`** (`string`) (required): **[CMS-1500 Carrier Block]** The Stedi payer ID for the payer being billed. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. - You must include leading 0 characters. Payer IDs are alphanumeric strings and must be treated as complete strings, not integers. For example, use `00540` for SISCO, not `540`. - **`payer.name`** (`any`): A name that belongs to an organization. - **`payer.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`payer.receiverId`** (`string`): **[CMS-1500 Carrier Block]** The ID of the receiver that processes the claim, typically the clearinghouse or payer. Only include when the receiver differs from the payer. - **`purpose`** (`string`) (required): The purpose of the claim submission. - `CHARGEABLE`: A standard fee-for-service claim with at least one chargeable line item. Use this for most submissions. - `SUBROGATION_DEMAND`: Only for use by state Medicaid agencies performing post-payment recovery. - `REPORTING`: A reporting-only submission that is not a request for payment. - Allowed values: `SUBROGATION_DEMAND`, `CHARGEABLE`, `REPORTING` - **`serviceLines`** (`array of ProfessionalClaimSubmissionServiceLine objects`) (required): **[CMS-1500 Box 17, 17a, 17b, 20, 24a-24j]** The individual services, procedures, or supplies being billed. Each service line corresponds to one row in Box 24 of the CMS-1500 form. - **`serviceLines[].attachments`** (`array of ProfessionalClaimSubmissionAttachment objects`): **[CMS-1500 Box 24]** Supporting documentation attached to this service line. Only include when the payer requires it. Visit [Submit claim attachments](https://www.stedi.com/docs/healthcare/submit-claim-attachments) for more information. - **`serviceLines[].attachments[].attachmentControlNumber`** (`string`): A control number assigned to the attachment. The payer uses this identifier to match the attachment to the claim. - You must include either this property or `attachmentId` in the request, but not both. Including both properties will result in an error. - We recommend using a ULID or UUID of up to 50 characters. - Stedi autogenerates a control number if you don't provide one. - **`serviceLines[].attachments[].attachmentId`** (`string`): The unique identifier for an attachment file you previously uploaded to Stedi. This value is returned in the `attachmentId` property of the [Create Claim Attachment (275) JSON](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-create-claim-attachment) response. Stedi uses it to generate and submit the 275 claim attachment transaction to the payer. - This property is required when you're submitting attachment files through Stedi. - You must include either this property or `attachmentControlNumber` in the request, but not both. Including both properties will result in an error. - For [paper claims](https://www.stedi.com/docs/healthcare/submit-paper-claims), the attachment must be a PDF. Otherwise, Stedi rejects the claim with an HTTP `400` error. - **`serviceLines[].attachments[].reportTypeCode`** (`string`) (required): The type of report being attached to the claim. Visit [Attachment report type codes](https://www.stedi.com/docs/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of values and their descriptions. - Allowed values: `REPORT_JUSTIFYING_TREATMENT`, `DRUGS_ADMINISTERED`, `TREATMENT_DIAGNOSIS`, `INITIAL_ASSESSMENT`, `FUNCTIONAL_GOALS`, `PLAN_OF_TREATMENT`, `PROGRESS_REPORT`, `CONTINUED_TREATMENT`, `CHEMICAL_ANALYSIS`, `CERTIFIED_TEST_REPORT`, `JUSTIFICATION_FOR_ADMISSION`, `RECOVERY_PLAN`, `ALLERGIES_SENSITIVITIES`, `AUTOPSY_REPORT`, `AMBULANCE_CERTIFICATION`, `ADMISSION_SUMMARY`, `PRESCRIPTION`, `PHYSICIAN_ORDER`, `REFERRAL_FORM`, `BENCHMARK_TESTING_RESULTS`, `BASELINE`, `BLANKET_TEST_RESULTS`, `CHIROPRACTIC_JUSTIFICATION`, `CONSENT_FORMS`, `CERTIFICATION`, `DRUG_PROFILE`, `DENTAL_MODELS`, `DME_PRESCRIPTION`, `DIAGNOSTIC_REPORT`, `DISCHARGE_MONITORING`, `DISCHARGE_SUMMARY`, `EXPLANATION_OF_BENEFITS`, `HEALTH_CERTIFICATE`, `HEALTH_CLINIC_RECORDS`, `IMMUNIZATION_RECORD`, `STATE_IMMUNIZATION_RECORDS`, `LABORATORY_RESULTS`, `MEDICAL_RECORD_ATTACHMENT`, `MODELS`, `NURSING_NOTES`, `OPERATIVE_NOTE`, `OXYGEN_CONTENT_AVERAGING`, `ORDERS_TREATMENTS`, `PHYSICAL_EXAMINATION`, `OXYGEN_THERAPY_CERTIFICATION`, `SUPPORT_DATA`, `PATHOLOGY_REPORT`, `MEDICAL_HISTORY`, `PARENTERAL_ENTERAL_CERTIFICATION`, `PHYSICAL_THERAPY_NOTES`, `PROSTHETICS_ORTHOTIC_CERTIFICATION`, `PARAMEDICAL_RESULTS`, `PHYSICIAN_REPORT`, `PHYSICAL_THERAPY_CERTIFICATION`, `RADIOLOGY_FILMS`, `RADIOLOGY_REPORTS`, `TESTS_ANALYSIS_REPORT`, `RENEWABLE_OXYGEN_CONTENT`, `SYMPTOMS_DOCUMENT`, `DEATH_NOTIFICATION`, `PHOTOGRAPHS` - **`serviceLines[].attachments[].transmissionCode`** (`string`) (required): How an attachment is transmitted to the payer. - `ELECTRONICALLY_ONLY`: The attachment is sent electronically only. - `BY_MAIL`: The attachment is sent by mail. - `BY_FAX`: The attachment is sent by fax. - `EMAIL`: The attachment is sent by email. - `FILE_TRANSFER`: The attachment is sent by file transfer. - `AVAILABLE_ON_REQUEST`: The attachment is held by the provider and made available to the payer on request. - Allowed values: `AVAILABLE_ON_REQUEST`, `BY_MAIL`, `ELECTRONICALLY_ONLY`, `EMAIL`, `FILE_TRANSFER`, `BY_FAX` - **`serviceLines[].datesOfService`** (`object`) (required): A date range. `end` is inclusive. At least one of `start` or `end` is present. - **`serviceLines[].datesOfService.end`** (`string`): The end date of the range, inclusive, in `YYYY-MM-DD` format. - **`serviceLines[].datesOfService.start`** (`string`): The start date of the range, in `YYYY-MM-DD` format. - **`serviceLines[].diagnosisCodes`** (`array of strings`) (required): **[CMS-1500 Box 24e]** Up to four diagnoses this service relates to. Must be [ICD-10-CM codes](https://www.cdc.gov/nchs/icd/icd-10-cm/index.html). List them in order of importance to the service, with the most relevant diagnosis first. Across `encounter.primaryDiagnosisCode` and the codes on every service line, a claim can use at most 12 distinct diagnosis codes. - You must submit a valid, billable code at the highest level of specificity. Include the 4th - 7th characters as applicable. - Don't submit the decimal point for ICD codes. The decimal point is implied. - Don't submit ICD-10 header codes. Header codes exist to group related codes and aren't valid for billing. These header codes can change with each new version of ICD-10, so we recommend reviewing your diagnosis codes every year to ensure that they aren't classified as header codes in the most recent version. To determine whether a code is a header code, you can also search the Value Set Authority Center. If the 'Header' property is set, the code is a header code and you shouldn't use it in claim submissions. - **`serviceLines[].drugIdentification`** (`object`): Drug identification details for a service line, required when a drug is billed and a prescription was written. - **`serviceLines[].drugIdentification.associationNumber`** (`any`): A prescription number or compound drug link sequence number. Provide exactly one. - **`serviceLines[].drugIdentification.associationNumber (variant 1).linkSequenceNumber`** (`string`) (required): A provider-assigned number, unique to this claim, that ties together the components of a compound drug when there is no prescription number. - **`serviceLines[].drugIdentification.associationNumber (variant 2).pharmacyPrescriptionNumber`** (`string`) (required): The pharmacy prescription number. For a compound drug, all components share the same prescription number so the payer can relate them. - **`serviceLines[].drugIdentification.nationalDrugCode`** (`string`) (required): The dispensed drug's National Drug Code (NDC). - **`serviceLines[].drugIdentification.originalNdc`** (`string`): The original National Drug Code (NDC), when it differs from the code reported in `nationalDrugCode`. - **`serviceLines[].drugIdentification.unitCount`** (`string`) (required): The quantity of the drug administered, expressed in the unit given by `unitOfMeasure`. - **`serviceLines[].drugIdentification.unitOfMeasure`** (`string`) (required): The unit of measure for a drug quantity. - `INTERNATIONAL_UNIT`: International unit. - `GRAM`: Gram. - `MILLIGRAM`: Milligram. - `MILLILITER`: Milliliter. - `UNIT`: Unit. - Allowed values: `INTERNATIONAL_UNIT`, `GRAM`, `MILLIGRAM`, `MILLILITER`, `UNIT` - **`serviceLines[].isEmergency`** (`boolean`): **[CMS-1500 Box 24c]** Whether the service was related to an emergency, meaning the patient required immediate intervention for a severe, life-threatening, or potentially disabling condition. - **`serviceLines[].isEpsdtRelated`** (`boolean`): **[CMS-1500 Box 24h]** Whether the service is related to an Early and Periodic Screening, Diagnosis, and Treatment (EPSDT) encounter. Set this on services that resulted from an EPSDT screening, not on the screening service itself. Report the screening's referral outcome in `encounter.epsdtReferralCodes`. - **`serviceLines[].isFamilyPlanning`** (`boolean`): **[CMS-1500 Box 24h]** Whether the service was related to a family planning program. - **`serviceLines[].lineItemChargeAmount`** (`string`) (required): **[CMS-1500 Box 24f]** The charge for this service line, including the provider's base charge and any applicable tax or postage. It is acceptable to set this to `0` (zero). - **`serviceLines[].lineItemControlNumber`** (`string`): A control number you assign to this service line for your own tracking. Each must be unique within the claim. If you don't set it, Stedi sets it for you – a random ULID. - **`serviceLines[].narrativeForUnspecifiedCode`** (`string`): **[CMS-1500 Box 24]** A free-text description that clarifies the procedure code and any modifiers. Provide when billing an unspecified or unlisted procedure code. - **`serviceLines[].orderingProvider`** (`object`): The provider who ordered the services, tests, or supplies on a service line. This should be an individual, not an organization, and you should supply at least the `lastName` and an identifier, which is typically the `npi`. - **`serviceLines[].orderingProvider.identifiers`** (`object`): Identifiers for an ordering provider. - **`serviceLines[].orderingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 17a]** A commercial number assigned to the ordering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].orderingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 17b]** The ordering provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`serviceLines[].orderingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 17a]** The ordering provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].orderingProvider.name`** (`any`) (required): A name that belongs to a person. - **`serviceLines[].orderingProvider.name (variant 1).person`** (`object`) (required): The name of an individual person. - **`serviceLines[].orderingProvider.name (variant 1).person.firstName`** (`string`): The person's first name. - **`serviceLines[].orderingProvider.name (variant 1).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`serviceLines[].orderingProvider.name (variant 1).person.middleName`** (`string`): The person's middle name or initial. - **`serviceLines[].orderingProvider.name (variant 1).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`serviceLines[].placeOfService`** (`string`): **[CMS-1500 Box 24b]** The place of service code identifying where the patient received the service. Visit [Place of Service Codes](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list. - **`serviceLines[].priorAuthorizations`** (`array of ProfessionalClaimSubmissionServiceLinePriorAuthorizationNumber objects`): Prior authorization numbers that apply to this service line. Include only numbers that differ from the claim-level prior authorization in `encounter.referenceNumbers.priorAuthorization`. You can use the same number on multiple service lines. - **`serviceLines[].priorAuthorizations[].otherPayerPrimaryId`** (`string`): The identifier of the other payer that issued this prior authorization number. Include only when the number was issued by a payer other than the one being billed, and match the other payer's identifier in `otherInsured[].otherPayer.id`. - **`serviceLines[].priorAuthorizations[].priorAuthorizationNumber`** (`string`) (required): The payer-issued prior authorization number for this service line. - **`serviceLines[].procedureCode`** (`object`) (required): A procedure, service, or supply code with any applicable modifiers. - **`serviceLines[].procedureCode.code`** (`string`) (required): The procedure, service, or supply code, typically a CPT or HCPCS code. - **`serviceLines[].procedureCode.modifiers`** (`array of strings`): Up to four modifier codes that convey special circumstances related to the service, such as `25` or `JW`. - **`serviceLines[].purchasedService`** (`object`): A service the billing provider bought from an outside provider and is billing to the payer. - **`serviceLines[].purchasedService.chargeAmount`** (`string`) (required): **[CMS-1500 Box 20]** The price the billing provider paid the outside provider for this service. - **`serviceLines[].purchasedService.provider`** (`object`) (required): The outside provider the billing provider bought the service from. - **`serviceLines[].purchasedService.provider.entityType`** (`string`) (required): Whether a purchased service provider is a person or an organization. - Allowed values: `PERSON`, `ORGANIZATION` - **`serviceLines[].purchasedService.provider.identifiers`** (`object`) (required): Identifiers for a purchased service provider. - **`serviceLines[].purchasedService.provider.identifiers.npi`** (`string`) (required): **[CMS-1500 Box 32a]** The purchased service provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`serviceLines[].renderingProvider`** (`object`): The provider who performed the service. This can be an individual or an organization, such as a laboratory. When a substitute provider (locum tenens) was used, supply that provider's information here. You can omit this object when the rendering provider is the same as the billing provider. - **`serviceLines[].renderingProvider.identifiers`** (`object`): Identifiers for the rendering provider. - **`serviceLines[].renderingProvider.identifiers.commercialNumber`** (`string`): **[CMS-1500 Box 24i]** A commercial number assigned to the rendering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].renderingProvider.identifiers.locationNumber`** (`string`): **[CMS-1500 Box 24i]** A location number assigned to the rendering provider by the payer. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].renderingProvider.identifiers.npi`** (`string`): **[CMS-1500 Box 24j]** The rendering provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier), a unique 10-digit ID issued by the Centers for Medicare & Medicaid Services (CMS). - **`serviceLines[].renderingProvider.identifiers.stateLicenseNumber`** (`string`): **[CMS-1500 Box 24i]** The rendering provider's state license number, assigned by a state licensing board. Include only when the payer requires it in addition to the NPI. - **`serviceLines[].renderingProvider.identifiers.taxonomyCode`** (`string`): **[CMS-1500 Box 24i]** The rendering provider's taxonomy code from the National Uniform Claim Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/), which identifies the provider's type and specialty. - **`serviceLines[].renderingProvider.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`serviceLines[].renderingProvider.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`serviceLines[].renderingProvider.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`serviceLines[].renderingProvider.name (variant 2).person.firstName`** (`string`): The person's first name. - **`serviceLines[].renderingProvider.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`serviceLines[].renderingProvider.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`serviceLines[].renderingProvider.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. - **`serviceLines[].units`** (`string`) (required): **[CMS-1500 Box 24g]** The number of units of the service provided. The units depend on the procedure code and the nature of the service. For example, they may correspond to office visits (1 unit per visit), individual diagnostic tests (1 unit per test), or time (when a service is billed in 15-minute increments, 4 units could equal 1 hour). For anesthesia procedure codes (00100-01999), report the total anesthesia time in minutes; Stedi reports the unit of measure as minutes for these codes automatically. - **`submitter`** (`object`) (required): The entity submitting the claim to Stedi. - **`submitter.contact`** (`object`): A person or department to contact, with up to one phone number, email address, and fax number. Provide at least one way to reach the contact. - **`submitter.contact.email`** (`string`): The contact's email address. - **`submitter.contact.faxNumber`** (`string`): The contact's fax number. - **`submitter.contact.name`** (`string`): The name of the contact person or department. When omitted, questions are directed to the entity itself. - **`submitter.contact.phoneExtension`** (`string`): The extension for `phoneNumber`. - **`submitter.contact.phoneNumber`** (`string`): The contact's phone number. - **`submitter.etin`** (`string`): **[CMS-1500 Carrier Block]** The submitter's Electronic Transmitter Identification Number (ETIN), a payer-assigned ID that identifies the entity transmitting the claim. - **`submitter.name`** (`any`) (required): A name that belongs to either a person or an organization. Provide exactly one of `person` or `organization`. - **`submitter.name (variant 1).organization`** (`string`) (required): The organization's business name. - **`submitter.name (variant 2).person`** (`object`) (required): The name of an individual person. - **`submitter.name (variant 2).person.firstName`** (`string`): The person's first name. - **`submitter.name (variant 2).person.lastName`** (`string`) (required): The person's last name. Don't include a name suffix such as Jr. or III here. Use the `suffix` property instead. - **`submitter.name (variant 2).person.middleName`** (`string`): The person's middle name or initial. - **`submitter.name (variant 2).person.suffix`** (`string`): The person's name suffix, such as Jr. or III. Include only a personal name suffix here, not professional or academic credentials such as M.D. **Example:** ```json { "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerAcceptsAssignment": "ASSIGNED", "providerSignature": "ON_FILE" }, "billing": { "billingProvider": { "address": { "addressLine1": "123 St", "city": "City", "postalCode": "12345", "state": "IL" }, "identifiers": { "npi": "1999999984", "taxonomyCode": "207Q00000X" }, "name": { "organization": "Test Provider" } }, "patientControlNumber": "TEST-004", "taxId": { "ein": "123456789" }, "totalCharge": "100.00" }, "encounter": { "attachments": [ { "attachmentControlNumber": "PWK-2026-0001", "reportTypeCode": "PROGRESS_REPORT", "transmissionCode": "ELECTRONICALLY_ONLY" } ], "claimCodes": [ "AV" ], "claimNote": { "additionalInformation": "Patient presented with persistent cough and bronchospasm; treated in office." }, "clinicalDates": { "hospitalization": { "end": "2026-03-06", "start": "2026-03-04" }, "initialTreatment": "2026-03-03", "onsetOfCurrentIllness": "2026-03-02", "unableToWork": { "end": "2026-03-10", "start": "2026-03-03" } }, "patientCondition": { "isAutoAccidentRelated": false, "isEmploymentRelated": false, "isOtherAccidentRelated": false }, "primaryDiagnosisCode": "J0190", "priorReferringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "John", "lastName": "Doe" } } }, "referenceNumbers": { "clia": "14D2089999", "priorAuthorization": "PA-2026-11111", "referral": "REF-4321" }, "referringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "resubmission": { "code": "REPLACEMENT_OF_PRIOR_CLAIM", "originalReferenceNumber": "CLM-ORIG-998877" }, "supervisingProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Smith" } } } }, "insured": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1990-01-01", "gender": "FEMALE", "insuranceType": "OTHER", "memberId": "W123456789", "name": { "person": { "firstName": "June", "lastName": "Doe" } }, "paymentResponsibilityLevelCode": "PRIMARY" }, "otherInsured": [ { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerGeneratedPatientSignature": false }, "claimFilingIndicator": "BLUE_CROSS_BLUE_SHIELD", "memberId": "BCBS-IL-554433221", "name": { "person": { "firstName": "Michael", "lastName": "Doe" } }, "otherPayer": { "id": { "payerId": "00621" }, "name": { "organization": "Blue Cross Blue Shield of Illinois" } }, "planName": "BCBS PPO", "policyOrGroupNumber": "BCBS-GRP-3344", "relationshipToInsured": "SPOUSE", "responsibilityLevel": "SECONDARY" } ], "patient": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1900-02-02", "gender": "MALE", "name": { "person": { "firstName": "Liam", "lastName": "Doe" } }, "relationshipToInsured": "CHILD" }, "payer": { "id": "60054", "name": { "organization": "Aetna" } }, "purpose": "CHARGEABLE", "serviceLines": [ { "datesOfService": { "end": "2026-03-03", "start": "2026-03-03" }, "diagnosisCodes": [ "J0190" ], "lineItemChargeAmount": "100.00", "placeOfService": "11", "procedureCode": { "code": "99213" }, "units": "1" } ], "submitter": { "contact": { "phoneNumber": "5555551234" }, "etin": "TEST001", "name": { "organization": "Test Submitter" } } } ``` ### Responses #### 200 ValidateProfessionalClaimSubmission 200 response **Schema:** `ValidateProfessionalClaimSubmissionResponseContent` **Properties:** - **`errors`** (`array of ClaimRejectionError objects`): Failed claim edits that would cause Stedi to reject the claim. Absent when the claim passes Stedi's pre-submission checks. - **`errors[].description`** (`string`) (required): A human-readable explanation of the error. **Example:** ```json {} ``` #### 400 ValidateProfessionalClaimSubmission400Error 400 response **Schema:** `ValidateProfessionalClaimSubmission400ErrorResponseContent` #### 401 AuthenticationFailedException 401 response **Schema:** `AuthenticationFailedExceptionResponseContent` **Properties:** - **`message`** (`string`) (required): Why the request failed. The wording can change, so branch on the exception type, not this text. #### 403 ValidateProfessionalClaimSubmission403Error 403 response **Schema:** `ValidateProfessionalClaimSubmission403ErrorResponseContent` #### 404 ResourceNotFoundException 404 response **Schema:** `ResourceNotFoundExceptionResponseContent` **Properties:** - **`code`** (`string`): Unique error code identifying the specific type of resource not found error. - **`message`** (`string`) (required): Human readable error message explaining why the resource could not be found. #### 429 ValidateProfessionalClaimSubmission429Error 429 response **Schema:** `ValidateProfessionalClaimSubmission429ErrorResponseContent` #### 500 ValidateProfessionalClaimSubmission500Error 500 response **Schema:** `ValidateProfessionalClaimSubmission500ErrorResponseContent` # Batch eligibility checks Source: https://www.stedi.com/docs/healthcare/batch-refresh-eligibility-checks Submit eligibility checks for many patients at once through CSV upload or the API, then track each batch and retrieve the results. Batch eligibility checks are a great option as your volume grows. Stedi handles complexity like queuing and retries according to established best practices, so you don't have to build this logic yourself. We recommend using batch checks for bulk workflows that aren't time sensitive, including: - Monthly or weekly coverage refreshes - Upcoming appointments - Sets of thousands or millions of checks that can run in the background However, batch checks have a longer feedback cycle than real-time checks because you don't receive the payer's response immediately. That's why we strongly recommend starting with [real-time checks](/healthcare/api-reference/post-healthcare-eligibility-legacy) when integrating with a new payer or working with eligibility checks for the first time. This approach allows you to ensure that your pipeline is working smoothly before you begin staging batch checks. You can submit batch checks manually by uploading CSV files to the Stedi portal or programmatically through the API. ## Transaction enrollment [#transaction-enrollment] If the provider is already enrolled for real-time eligibility checks through Stedi, you don't need to enroll again for batch eligibility checks. [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Most payers don't require transaction enrollment for eligibility checks. Those that do, such as the Centers for Medicare & Medicaid Services (CMS), typically allow multiple enrollments with different clearinghouses. That means enrolling through Stedi shouldn't cancel or interfere with any existing enrollments you have through other clearinghouses. Enrolling through Stedi for eligibility checks also doesn't affect your existing enrollments for other transaction types. For example, enrolling with Stedi won't unenroll the provider from receiving transactions like Electronic Remittance Advices (ERAs) through other clearinghouses. You can check whether a specific payer requires enrollment for eligibility checks in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). If enrollment is required, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for real-time eligibility checks - batch eligibility checks use the same enrollment process as real-time eligibility checks. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) ## Manual submission [#manual-submission] You can submit batch eligibility checks through bulk CSV upload. CSV uploads support fewer properties than the [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) API. For example, you can't include a procedure code (`procedureCode`). To submit other information, use [API submission](#api-submission). ### Create new CSV batch [#create-new-csv-batch] To create a new CSV batch: 1. Go to the [Batch eligibility checks page](https://portal.stedi.com/app/healthcare/checks/batch). 2. Click **+ New batch from CSV**. 3. Enter a unique name for the batch. Stedi displays this name in the list of batch uploads. This name is for your reference only - we don't send it to payers. 4. (Optional) Click **Advanced options** to configure a custom **Retry duration** between 8 and 24 hours. This is the maximum number of hours that Stedi will retry checks in the batch that fail due to payer connectivity issues. The default is 8 hours. 5. Click **Create** to go to the CSV upload page for your new batch. ### Upload CSV file [#upload-csv-file] On the CSV upload page for your batch: 1. Click **Download a template** to download the CSV template. You can also download it from this link: [template CSV file](/files/batch-eligibility-template.csv). The table on the upload page describes each field. 2. Populate the template with eligibility checks. Each row in the template represents one eligibility check. You can submit up to 10,000 checks per CSV file. The upload page lists the fields most checks need for the best chance of success. The CSV requires a provider name. We recommend using the name on the provider's NPPES record. Only use a different name if you believe that the provider name on file with the payer differs from the provider name in NPPES. Don't use a placeholder name, because it can change the benefits information the payer returns. Visit [Provider name](#provider-name) for details. You can also submit [MBI lookups](/healthcare/mbi-lookup) through CSV upload. Set the `tradingPartnerServiceId` for each check to either **MBILU** (for MBI lookups with SSN) or **MBILUNOSSN** (for MBI lookups without SSN). Then, include the required patient demographic information for each lookup. 3. Click **+ Upload file** to upload your complete CSV file. 4. Click **Verify file** so Stedi can validate the data in each eligibility check. You can fix any errors and re-upload the CSV file as many times as needed. When the file is error-free, you'll be able to execute the batch. 5. Click **Execute batch** to send the eligibility checks to Stedi for processing. Stedi processes the checks asynchronously, implementing best practices to avoid payer throttling. You can review the details of each check from the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). ### Batch status [#batch-status] The batch status changes to **In progress** while Stedi is processing the batch. The status changes to **Completed** when Stedi has sent all checks in the batch to payers and received responses. A completed batch may contain both successful and failed eligibility checks. You can [retrieve the results](#retrieve-batch-results) of each check in the batch through the Stedi portal or API. ## API submission [#api-submission] You can use Stedi's [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) API to submit up to 10,000 eligibility checks in a single request. Stedi processes these eligibility checks asynchronously, implementing best practices to avoid payer throttling. ### Headers - required [#headers---required] You must include the following headers in your API request: - **`Authorization`:** [Generate an API key](/healthcare/api-reference#authentication) to use for authentication. - **`Content-Type`:** Set to `application/json`. ```bash curl --request POST \ --url https://manager.us.stedi.com/2024-04-01/eligibility-manager/batch-eligibility \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ ``` ### Headers - situational [#headers---situational] When sending eligibility checks to the Centers for Medicare & Medicaid Services (CMS), you may need to include the `X-Forwarded-For` header set to a comma-separated list of any upstream IP addresses. Visit [CMS traceability requirements](#cms-traceability-requirements) for details and examples. ### Request data [#request-data] The information you provide to the payer in an eligibility check can vary, depending on the circumstances. However, each batch eligibility check must include at least the following information: | Information | Description | | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tradingPartnerServiceId` |
  • This is the payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record.
  • You must include leading `0` characters in payer IDs. For example, use `00540` for SISCO, not `540`.
  • If you don't know the payer, try submitting an [insurance discovery check](/healthcare/insurance-discovery) instead.
| | `submitterTransactionIdentifier` |
  • A unique identifier for the eligibility check within the batch.
  • Stedi returns this identifier in the response for the [Retrieve Batch Check Statuses](/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses) and [Poll Batch Eligibility Checks](/healthcare/api-reference/get-healthcare-polling-eligibility) endpoints so you can correlate the original eligibility request with its processing status and the payer's response.
| | `provider` object, name and identifier |
  • You must include an identifier - this is typically the provider's [National Provider Identifier](https://www.stedi.com/docs/healthcare/national-provider-identifier) (`npi`). If the provider doesn't have an NPI, you can supply an alternative, such as their `taxId` or `ssn`.
  • We recommend omitting the provider's name - Stedi uses the name on the provider's National Plan and Provider Enumeration System (NPPES) record. Only include it - either the `firstName` and `lastName` of a specific provider within a practice or the `organizationName` - if you believe that the provider name on file with the payer differs from the provider name in NPPES. Don't use a placeholder name. Visit [Provider name](#provider-name) for details.
| | `subscriber` and/or `dependents` objects |
  • The `dependents` object is optional - refer to the scenarios when the [patient qualifies as a dependent](/healthcare/send-eligibility-checks#dependents).
  • At a minimum, our API requires that you supply at least one of these fields in the request: `memberId`, `dateOfBirth`, or `lastName`. However, each payer has different requirements, so you should supply the fields necessary for each payer to identify the subscriber in their system.
  • When all four of `memberId`, `dateOfBirth`, `firstName`, and `lastName` are provided, payers are required to return a response if the member is in their database. Some payers may be able to search with less information, but this varies by payer.
  • We recommend always including the patient's member ID when possible. Learn more about [patient information](/healthcare/send-eligibility-checks#patient-information).
| | `encounter` object, service dates |
  • You can specify either a single `dateOfService` or a `beginningDateOfService` and `endDateOfService`. The payer defaults to using the current date in their timezone if you don't include one.
  • When checking eligibility for today, omit the `dateOfService` property to ensure consistent behavior across payers.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers such as the Centers for Medicare and Medicaid Services (CMS) do support requests for dates further in the future - especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `encounter` object, service or procedure codes |
  • Specify `serviceTypeCodes` and/or a `procedureCode` and `productOrServiceIDQualifier` to request specific types of benefits information.
  • We recommend including no more than one service type code in each request.
  • If you don't include any service type code or procedure code information, Stedi defaults to using `30` (Plan coverage and general benefits) as the only `serviceTypeCodes` value.
  • Learn more about [STCs and procedure codes](/healthcare/eligibility-stc-procedure-codes).
| #### Provider name [#provider-name] Some payers return different benefits information depending on the provider name in the eligibility check, even when the National Provider Identifier (NPI) is the same. For example, when a check uses a placeholder name instead of the provider's name, a payer can return a limited set of benefits, or return out-of-network benefits instead of in-network benefits. We recommend using the name on the provider's National Plan and Provider Enumeration System (NPPES) record. Only use a different name if you believe that the provider name on file with the payer differs from the provider name in NPPES. If the name in the check doesn't match the payer's records, the payer can return different or incomplete benefits information. For API requests, we recommend omitting the provider name in your request - Stedi uses the name on the provider's NPPES record when it sends the check. In the Stedi portal, the eligibility form fills in the NPPES name when you enter the NPI, so we recommend keeping that name. If you leave the provider name out, Stedi uses the name on the provider's NPPES record for the NPI. This works for both individual (Type 1) and organization (Type 2) NPIs. Stedi uses the record's last, first, and middle name and suffix where available, or its organization name, and sets the entity type to match. It only uses the record's primary name, not other names listed on the record. If Stedi can't get a name from NPPES, such as when the check doesn't include an NPI or there's no active NPPES record, it uses `PROVIDER`. Stedi still sends the check and doesn't return an error. Stedi only fills in the name when the last name or organization name is missing. If you include a name or a placeholder, such as `PROVIDER`, Stedi doesn't replace it. #### Patient information [#patient-information] Batch checks should follow the same best practices as real-time eligibility checks when entering patient information. Visit [Real-time eligibility checks](/healthcare/send-eligibility-checks#patient-information) for guidance on: - Which patient identifiers to use for best results - How to know if a patient qualifies as a dependent - How to enter patient names for best results #### MBI for CMS checks [#mbi-for-cms-checks] A Medicare Beneficiary Identifier (MBI) is a unique, randomly-generated identifier assigned to individuals enrolled in Medicare. You must include the patient's MBI in every eligibility check to the Centers for Medicare and Medicaid Services (payer ID: CMS). Some payers return the patient's MBI in one of the following properties of the standard eligibility response: - [`benefitsInformation[].benefitsAdditionalInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsAdditionalInformation.hicNumber) - [`planInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planInformation.hicNumber) If the value in either of these properties matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI, and we recommend sending a follow-up eligibility check to CMS for additional benefits data. You're most likely to receive an MBI in eligibility check responses from commercial Medicare Advantage plans, but they can also be present in responses from Medicaid plans for dual-eligible patients. When you don't know a patient's MBI, you can use Stedi's eligibility check APIs to perform an MBI lookup instead of a standard eligibility check. Stedi returns a complete benefits response from CMS with the patient's MBI in the `subscriber` object for future reference. Visit [Medicare Beneficiary Identifier (MBI) lookup](/healthcare/mbi-lookup) for complete details. **Don't** submit eligibility checks for Medicare Advantage plans to CMS (HETS) – you should submit them to the actual Medicare Advantage plan payer instead. #### Conditional requirements [#conditional-requirements] Note that objects marked as **required** are required for all requests, while others are conditionally required depending on the circumstances. When you include a conditionally required object, you must include all of its required properties. For example, you must always include the `provider` object in your request, but you only need to include the `dependents` object when you need to request benefits information for a dependent on the subscriber's insurance plan. #### Character restrictions [#character-restrictions] Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause errors. The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included. The following special characters are included: ![Basic special characters](/images/basic-special-characters.png) The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`. The following additional special characters are included: ![Extended special characters](/images/extended-special-characters-healthcare.png) In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, `^`, and `>`. X12 doesn't support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly. Don't include delimiter characters anywhere in your request data. **Autocorrection for backticks** Stedi automatically replaces backticks (`` ` ``), also known as backquotes or grave accents, with an apostrophe (`'`) in `subscriber` and `dependents` first and last names. These corrections prevent errors when submitting your request. Stedi returns a message in the response's `warnings` array when it makes this replacement. ### Sample request and response [#sample-request-and-response] The following example demonstrates how to submit a batch of eligibility checks in the `items` array, where each item represents an individual eligibility check. Stedi returns a `batchId` that you can use to retrieve the results of these checks later. Visit [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits) for detailed explanations of how to determine the patient's active coverage, financial responsibility, whether referrals and authorizations are required, and more. {/* schema:BatchEligibilityChecksRequestContent */} ```bash curl --request POST \ --url https://manager.us.stedi.com/2024-04-01/eligibility-manager/batch-eligibility \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "items": [ { "submitterTransactionIdentifier": "ABC123456789", "tradingPartnerServiceId": "AHS", "encounter": { "serviceTypeCodes": [ "MH" ] }, "provider": { "organizationName": "ACME Health Services", "npi": "1999999984" }, "subscriber": { "dateOfBirth": "19000101", "firstName": "Jane", "lastName": "Doe", "memberId": "1234567890" } }, { "submitterTransactionIdentifier": "DEF123456799", "tradingPartnerServiceId": "AHS", "encounter": { "serviceTypeCodes": [ "78" ] }, "provider": { "organizationName": "ACME Health Services", "npi": "1999999984" }, "subscriber": { "dateOfBirth": "19001021", "firstName": "John", "lastName": "Doe", "memberId": "1234567892" } } ] }' ``` {/* schema:BatchEligibilityChecksResponseContent */} ```json { "batchId": "01928d19-df25-76c0-8d51-f5351260fa05", "submittedAt": "2023-11-07T05:31:56Z" } ``` ### Delimiter normalization [#delimiter-normalization] Stedi reserves certain characters for delimiters in X12 EDI transactions. When these delimiter characters appear within data values - meaning they're used as content and not as actual delimiters, such as within a subscriber's name - Stedi replaces them to prevent parsing issues. Stedi normalizes delimiters within transaction data as follows: | Character found in data | Replacement | Stedi's reserved delimiter type it conflicts with | | ----------------------- | ----------- | ------------------------------------------------- | | `*` | `\|` | Element separator | | `^` | `\|` | Repetition separator | | `` ` `` | `'` | Component element separator | | `~` | `\|` | Segment terminator | **Examples:** - `O*CONNOR` becomes `O|CONNOR` - `CODE^01` becomes `CODE|01` - ``O`CONNOR`` becomes `O'CONNOR` - `MSG~HELLO` becomes `MSG|HELLO` If you parse raw X12 EDI responses, ensure your parser reads delimiters from the `ISA` segment instead of assuming fixed delimiters. ### Concurrency limit [#concurrency-limit] Asynchronous batch checks don't count toward your Stedi account [concurrency limit for real-time checks](/healthcare/api-reference#concurrency-limits). There are no limits on the number of batches you can run in parallel. ## Configure automatic retries [#configure-automatic-retries] Stedi retries checks that fail due to [payer connectivity issues](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for 8 - 24 hours, depending on the specified retry period. It can take up to the configured retry period for all checks in a batch to return results. Stedi doesn't retry `42` errors that include a [follow-up action](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) of `C`, `N`, or `S`, because these indicate a problem with the request. You can configure the retry period for a batch by: - **API:** Include the optional `maxRetryHours` property in the request. - **CSV upload:** Open **Advanced options** during creation and select a **Retry duration** from the dropdown. For both submission methods, you can choose a value between 8 and 24 hours. If not set, the default is 8 hours. ## Track batch status [#track-batch-status] After you've submitted a batch of eligibility checks, you can track the processing status through the Stedi portal or API. ### Processing status vs. eligibility check result [#processing-status-vs-eligibility-check-result] You can track the overall batch processing status, the processing status of each eligibility check, and each eligibility check's result. | Status | Description | | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Batch |
  • The processing status of an eligibility check batch within Stedi.
  • In the API, this is the Batch Status response [`status` property](/healthcare/api-reference/get-healthcare-batch-eligibility-status#response.status).
  • In the Stedi portal, this is the batch **Status**.
| | Eligibility check processing status |
  • The processing status of an individual eligibility check (batch item). It doesn't indicate whether the payer returned benefits information.
  • In the API, this is the Retrieve Batch Check Statuses response [`items[].state` property](/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses#response.items.state).
  • In the Stedi portal, this is the **Processing status** of each eligibility check within a batch.
| | Eligibility check result |
  • The outcome of an eligibility check based on the payer's response. Use it to determine whether a completed eligibility check returned active coverage types. Only completed checks will have a result. Can be:
    • `ACTIVE`: The payer's response contains an active eligibility and benefit type. This means that the patient has active coverage for at least some services.
    • `INACTIVE`: The payer's response doesn't contain an active eligibility and benefit type. This means that the patient doesn't have active coverage for the requested services.
    • `INVESTIGATE`: The payer returned an unexpected eligibility or benefit type code. Review the response and contact the payer if you have questions.
    • `FAILED`: The payer returned an error code in the response. Review the error code and retry the eligibility check.
  • In the API, this is the Retrieve Batch Check Statuses response [`items[].additionalInfo.eligibility.eligibilityCheckResult` property](/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses#response.items.additionalInfo.eligibility.eligibilityCheckResult).
  • In the Stedi portal, this is the **Result**.
| ### Stedi portal [#stedi-portal] You can review the progress of batch eligibility checks submitted through API or CSV upload on the [Eligibility check batches page](https://portal.stedi.com/app/healthcare/checks/batch). Click the batch name to view its details, including the **Processing status** and **Search outcome** of each check. You can also download the original CSV input, if the batch was submitted as a CSV file. ![Batch checks UI statuses](/images/providers/batch-checks-ui.png) ### Status endpoints [#status-endpoints] You can use the following endpoints to programmatically check the status of batch eligibility checks submitted through the API or CSV upload. These endpoints help you determine when to start polling for results. #### Retrieve Batch Status [#retrieve-batch-status] The [Retrieve Batch Status](/healthcare/api-reference/get-healthcare-batch-eligibility-status) endpoint returns a summary of the batch's processing status, including the number of completed checks, the error count, and the overall batch status. You can use it to determine when to start polling for the results of the eligibility checks within the batch. For example: - Don't start polling until either the `successCount` or the `errorCount` are greater than zero because these properties indicate checks that Stedi has finished processing. Or, you may want to poll once when the batch `status` is `COMPLETED` or `COMPLETED_WITH_ERRORS`, meaning all checks have been processed. - You can stop polling when the `inProgressCount` reaches zero or when the batch `status` is `COMPLETED` or `COMPLETED_WITH_ERRORS`. The following is an example response for a batch submitted through the API. The `successCount` matches the `totalCount`, indicating that all checks in the batch have been successfully processed and that the payer returned a response. Note that successful processing doesn't necessarily mean that the patient has active coverage. It simply means that the payer returned a response for the check. You'll need to review the individual check results to determine the patient's coverage status. ```json { "batchType": "ELIGIBILITY", "createdAt": "2025-06-13T17:14:20.02Z", "errorCount": 0, "id": "01976a49-05f4-7421-bc33-aed86f1fccc6", "inProgressCount": 0, "name": "01976a49-05f4-7421-bc33-aed86f1fccc6", "source": "API", "status": "COMPLETED", "successCount": 9000, "totalCount": 9000, "updatedAt": "2025-06-13T17:14:24.872Z", "validatedCount": 0, "validationFailedCount": 0 } ``` #### Retrieve Batch Check Statuses [#retrieve-batch-check-statuses] The [Retrieve Batch Check Statuses](/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses) endpoint retrieves the processing status of the eligibility checks in the specified batch. You can use it to determine whether specific eligibility checks within a batch have completed. You can also use the response to determine whether patients have active or inactive coverage without having to poll. The following is an example response for two checks in a batch submitted through a CSV upload. You can tell because the results include the `rowNumber`, which indicates the row number for that eligibility check in the CSV file. - The first check has an `eligibilityCheckResult` of `ACTIVE`, indicating that the payer returned at least one active eligibility and benefit type. This means that the patient has active coverage for at least some services. Its `state` is `COMPLETED`, indicating that the check was successfully processed and that the payer returned a response. - The second check has an `eligibilityCheckResult` of `FAILED`, indicating that Stedi didn't receive benefits information from the payer. Its `state` is `COMPLETED_WITH_ERRORS`, which typically indicates that Stedi couldn't get a response from the payer after retrying. Failures like this are often due to payer connectivity issues. Each check's `additionalInfo.eligibility` object includes the following [eligibility check identifiers](#eligibility-check-identifiers): - `submitterTransactionIdentifier`: The identifier you assigned to the check when submitting the batch. - `id`: The globally unique, Stedi-assigned eligibility check ID. ```json { "items": [ { "additionalInfo": { "eligibility": { "eligibilitySearchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "id": "ec_01932c61-2d4f-7d22-85fa-c7db2e13e770", "submitterTransactionIdentifier": "ABC123456789", "eligibilityCheckResult": "ACTIVE", "payerId": "BCBS", "subscriberFirstName": "John", "subscriberLastName": "Doe", "subscriberMemberId": "123456789" } }, "batchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "createdAt": "2025-03-31T14:25:30Z", "requestId": "req-01a2b3c4-d5e6-7f89-0123-456789abcdef", "rowNumber": 3, "state": "COMPLETED", "updatedAt": "2025-03-31T14:26:45Z" }, { "additionalInfo": { "eligibility": { "eligibilitySearchId": "01932c61-2d4f-7d22-85fa-c7db2e13e772", "submitterTransactionIdentifier": "GHJ987654321", "eligibilityCheckResult": "FAILED", "payerId": "AETNA", "subscriberFirstName": "Jane", "subscriberLastName": "Smith", "subscriberMemberId": "987654321" } }, "batchId": "01932c61-2d4f-7d22-85fa-c7db2e13e771", "createdAt": "2025-03-31T14:25:30Z", "requestId": "req-02a2b3c4-d5e6-7f89-0123-456789abcdef", "rowNumber": 2, "state": "COMPLETED_WITH_ERRORS", "updatedAt": "2025-03-31T14:27:15Z" } ], "nextPageToken": "945ff6de213d3ef481d028065d4c12fb996a166a3a90ef98564318decfae50ce4b36d74b7e9d9bafa6e1d169" } ``` ## Retrieve batch results [#retrieve-batch-results] You can retrieve batch check results through the Stedi portal or API. ### Stedi portal [#stedi-portal-1] To review batch results: 1. Go to the [Batch eligibility checks](https://portal.stedi.com/app/healthcare/checks/batch) page. 2. Click the batch name to view its details, including the status of each check in the batch. 3. Click any eligibility check to go to its details. You'll be able to review the full request and response payload as well as any error messages (if present). You'll also be able to edit the request details for failed eligibility checks and resubmit them to the payer. ### Polling endpoint [#polling-endpoint] You can use the [Poll Batch Eligibility Checks](/healthcare/api-reference/get-healthcare-polling-eligibility) endpoint to retrieve the results from batch checks submitted through both the API and CSV upload. You should [track completed checks](#track-completed-checks) to determine when to stop polling. #### Polling strategy [#polling-strategy] We recommend using the [Retrieve Batch Status](/healthcare/api-reference/get-healthcare-batch-eligibility-status) endpoint to monitor the progress of large batches and determine when to start polling for results. - Don't start polling until either the `successCount` or the `errorCount` are greater than zero because these properties indicate checks that Stedi has finished processing. Or, you may want to poll once when the batch `status` is `COMPLETED` or `COMPLETED_WITH_ERRORS`, meaning all checks have been processed. - You can stop polling when the `inProgressCount` reaches zero or when the batch `status` is `COMPLETED` or `COMPLETED_WITH_ERRORS`. While batches are in progress, a single polling attempt may not retrieve responses for all checks within the batch. Most batches complete in 15 to 30 minutes. However, Stedi retries checks that fail due to [payer connectivity issues](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for 8 - 24 hours, depending on the configured retry period. It can take up to the configured retry period for all checks in a batch to return results. After your initial poll, use exponential backoff with jitter. Start at 2 minutes and approximately double the wait between polls, up to the end of the configured retry period. For example, you might use something similar to the following formula (all values in seconds) for the 8-hour default retry period: ``` wait_time = (0 if attempt == 0 else min(120 * 2**(attempt - 1), 8*60*60)) + random(0, 30) ``` In this formula: - **Immediate first poll:** if `attempt == 0` then wait time is `0`. - **Start at 2 minutes:** On attempt == `1`, base wait is 120 seconds (2 minutes). - **Exponential backoff:** Doubles each time: 2, 4, 8, 16, ... minutes. - **Cap at 8 hours:** min(..., 8*60*60) ensures it never exceeds 480 minutes. - **Jitter:** Adds a random delay between 0 and 30 seconds. #### Filter polling results [#filter-polling-results] You can filter the polling results using the following query parameters: - `batchId`: Retrieve results for a specific batch of eligibility checks. You can find this value in the synchronous response from the [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint. - `startDateTime`: Retrieve results for checks submitted after a specific date and time (in ISO 8601 format). The following example example retrieves the results for batch checks submitted after `2025-12-31T00:00:00Z`: ```bash curl --request GET \ --url https://manager.us.stedi.com/2024-04-01/eligibility-manager/polling/batch-eligibility?startDateTime=2025-12-31T00:00:00Z \ --header 'Authorization: ' ``` #### Track completed checks [#track-completed-checks] The polling endpoint only returns checks that have been fully processed. These are checks that: - Returned benefits information indicating either active or inactive coverage. These checks have a final `state` of `COMPLETED` and an `eligibilityCheckResult` of `ACTIVE` or `INACTIVE`. - Returned an error response from the payer that doesn't indicate payer connectivity issues. For example, if the payer returns an error indicating that the member ID is invalid, Stedi considers this a completed check and returns it in the batch results with the associated [`AAA` error](/healthcare/eligibility-troubleshooting#payer-aaa-errors) of `72` (Invalid/Missing Subscriber/Insured ID). These checks have a final `state` of `COMPLETED` and an `eligibilityCheckResult` of `FAILED`. - Returned `AAA` errors `42` or `80` for the entire retry period. These `AAA` errors indicate payer connectivity issues, and Stedi retries checks that fail due to payer connectivity issues for 8 - 24 hours. After the configured retry period, Stedi returns it in the batch results with the associated `AAA` error. These checks have a final `state` of `COMPLETED_WITH_ERRORS` and an `eligibilityCheckResult` of `FAILED`. - Stedi couldn't process due to validation errors in the request data. These checks have a final `state` of `VALIDATION_FAILED` and an `eligibilityCheckResult` of `FAILED`. Checks that Stedi hasn't yet finished processing aren't included in the polling results. For example, the polling endpoint won't return results for checks that are eligible for automatic retries. You'll need to track the status of pending checks to determine when to stop polling. You can do this with either of the status endpoints: - [Retrieve Batch Status](/healthcare/api-reference/get-healthcare-batch-eligibility-status): Returns summary information about the batch, including the `inProgressCount`, which indicates how many checks are still pending. You can stop polling when this count reaches zero or when the batch `status` is `COMPLETED` or `COMPLETED_WITH_ERRORS`. - [Retrieve Batch Check Statuses](/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses): Returns status information for all checks in the batch, including those that are still pending. The information for each check includes the `submitterTransactionIdentifier` you assigned when you submitted the batch. This identifier is also present in the polling results, allowing you to correlate the original eligibility request with its processing status and the payer's response. ## Eligibility check identifiers [#eligibility-check-identifiers] There are two identifiers you can use to reference individual eligibility checks within a batch. They're returned in both the Retrieve Batch Check Statuses and the Poll Batch Checks endpoint responses. ### Submitter transaction identifier [#submitter-transaction-identifier] The submitter transaction identifier is an ID that you assign to each eligibility check you submit in a batch. It must be unique within the batch. - **Batch Check Statuses:** [`items[].additionalInfo.eligibility.submitterTransactionIdentifier`](/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses#response.items.additionalInfo.eligibility.submitterTransactionIdentifier) - **Poll Batch Checks:** [`items[].submitterTransactionIdentifier`](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.submitterTransactionIdentifier) You can use the submitter transaction identifier to correlate the original eligibility request with both its processing status and the payer's benefit response. ### Eligibility check ID [#eligibility-check-id] The eligibility check ID is a globally unique identifier that Stedi automatically assigns to each eligibility check. It's formatted as `ec_`. - **Batch Check Statuses:** [`items[].additionalInfo.eligibility.id`](/healthcare/api-reference/get-healthcare-batch-eligibility-check-statuses#response.items.additionalInfo.eligibility.id) - **Poll Batch Checks:** [`items[].id`](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.id) You can use the eligibility check ID to link directly to an eligibility check's results in the Stedi portal. The format for direct portal links is: `https://portal.stedi.com/app/healthcare/eligibility/{search-id}/inspect/{check-id}`, where `{search-id}` is the [eligibility search ID](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.eligibilitySearchId) and `{check-id}` is the unique, Stedi-assigned eligibility check ID. You can find the eligibility search ID at the top of an eligibility search's details page in the [Stedi portal](https://portal.stedi.com/app/healthcare/eligibility). ## Minimize waste [#minimize-waste] We recommend the following to optimize batch eligibility checks: - Periodically purge or archive records for inactive patients. It's a waste to perform eligibility checks on patients who have died or who haven't scheduled an encounter for several years. - Remove or deactivate patients that are no longer eligible. The payer indicates ineligibility by setting `benefitsInformation.code = "6"` (Inactive) in the response. ## Monitor for potential coverage loss [#monitor-for-potential-coverage-loss] When you receive the results of your batch eligibility checks, look for patients who have coverage that may be at risk. Check for `benefitsInformation[].code` = `5`, which stands for Active - Pending investigation, or a `planDateInformation.premiumPaidToDateEnd` before the current date. Some payers may still show active coverage while the subscriber is behind on premium payments. You may want to conduct additional checks on these patients because they have an elevated risk of losing coverage soon. ## Costs [#costs] The costs for running a batch eligibility check – manually or using the API – are the same as running the equivalent number of real-time eligibility checks. For example, if you run a batch with 500 checks, it will cost the same as running 500 real-time eligibility checks. ## CMS traceability requirements [#cms-traceability-requirements] All parties involved in HETS eligibility transactions must comply with the [HETS Rules of Behavior](https://www.cms.gov/research-statistics-data-and-systems/cms-information-technology/hetshelp/downloads/eligibilitytransactionsysteminquiriesrulesofbehavior.pdf). Compliance is also required under our terms. Review the Rules of Behavior before sending eligibility checks to CMS. Starting November 8, 2025, the Centers for Medicare & Medicaid Services (CMS) requires submitters to include the entire chain of network hops for every eligibility request sent to CMS's eligibility system, HETS. Specifically, requests must include an `X-Forwarded-For` HTTP header containing the network IP addresses from the point of origin through receipt by the HETS system. CMS expects `X-Forwarded-For` to list each IP, comma-separated, starting with the originating system and continuing through every intermediary. To comply with this requirement: - You must collect all IP addresses for upstream requests and pass them in the standard `X-Forwarded-For` header when calling Stedi's API. If you are yourself an intermediary – for example, an RCM, EHR, or PMS system – you'll need to coordinate with your providers and any third-party organizations to ensure they include the Network IP details as part of the `X-Forwarded-For` header. This enables CMS to receive a complete list of all IPs, including the original initiator of the request (typically, the provider). - Stedi records the IP address you use when you call our API, as well as all the IP addresses listed in the `X-Forwarded-For` header. We include these IP addresses in the list submitted to CMS. You only need to include the `X-Forwarded-For` header in eligibility requests when there are upstream IP addresses. The following examples illustrate when and how to include the header: | Scenario | `X-Forwarded-For` required? | Result | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | | A provider (IP `2.2.2.2`) connects directly to Stedi without intermediaries. | No. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2` | | A provider (IP `2.2.2.2`) routes through an RCM platform's transactional system (IP `3.3.3.3`) that calls Stedi's API using a separate integration backend (IP `4.4.4.4`). | Yes. The RCM platform sets `X-Forwarded-For: 2.2.2.2, 3.3.3.3`. Stedi records the IP address of the API caller (`4.4.4.4` ) and sends it to CMS. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2, 3.3.3.3, 4.4.4.4`. | | A provider network (IP `2.2.2.2`) passes through an office firewall (IP `4.4.4.4`) and then an RCM platform (IP `3.3.3.3`), which calls Stedi's API. | Yes. The RCM platform sets `X-Forwarded-For: 2.2.2.2, 4.4.4.4`. Stedi records the IP address of the API caller (`3.3.3.3`) and sends it to CMS. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2, 4.4.4.4, 3.3.3.3`. | ### U.S. IP address requirement [#us-ip-address-requirement] Stedi blocks eligibility requests to CMS when any IP address in the chain – the originating IP address or any in the X-Forwarded-For header – is located outside the United States. # Billing and pricing Source: https://www.stedi.com/docs/healthcare/billing Compare Stedi sandbox and production accounts, choose a pricing plan, and upgrade to production. Review how pay-as-you-go billing works. Learn about Stedi account types, pricing plans, and billing. ## Account types [#account-types] Every Stedi account is either a sandbox account or a production account. ### Sandbox accounts [#sandbox-accounts] Sandbox accounts are free and limited to test mode. You can use sandbox accounts to: - Run mock eligibility checks. - Explore the Stedi portal. - Build and test your eligibility integration using test API keys. Developers and coding agents can run eligibility checks in a free sandbox account using test API keys. When they're ready to move to production, they can upgrade in account settings and swap in a production API key. Sandbox accounts don't support submitting test claims through the API or SFTP. You need a production account to access these features. ### Production accounts [#production-accounts] Production accounts can process unlimited real transactions with payers. Stedi offers production accounts on two pricing plans: pay-as-you-go for per-transaction billing with volume discounts, or custom plans for high-volume customers requiring enterprise features. All production accounts include: - Unlimited user seats and providers - Transaction enrollment, including the Transaction Enrollment API - A searchable, programmatic payer list - All transactions and APIs available on our [pricing page](https://www.stedi.com/pricing) - The Stedi MCP server for AI agents - Stedi Agent, an in-app AI assistant - Real-time support over Slack, Microsoft Teams, and email ### Upgrade to production [#upgrade-to-production] To upgrade from a sandbox account to production, click **Upgrade account** in the side navigation. Then, follow the upgrade flow. ## Pricing plans [#pricing-plans] Production accounts are available on one of two pricing plans: ### Pay as you go [#pay-as-you-go] The pay-as-you-go plan uses prepaid credits with usage-based pricing and automatic volume-based discounts. The plan uses tiered pricing – for most transactions, the per-transaction rate drops as your monthly volume grows. When you [sign up](https://portal.stedi.com/auth/sign-up?redirect_uri=https%3A%2F%2Fportal.stedi.com%2Fapp%2Fcreate-account) for the pay-as-you-go plan, you add a credit card and fund an initial Stedi account balance, starting at $25. Each transaction draws down the balance at the rate for its pricing tier. Visit our [pricing page](https://www.stedi.com/pricing) for an estimator and full breakdown of each tier. Stedi automatically adds to your balance when it drops below a trigger you set. For example, you can add $100 to your balance whenever it falls below $10, the minimum trigger. Your balance rolls forward month to month. At the end of each month, Stedi sends an invoice that covers your monthly usage. If you send zero transactions in a month, you pay nothing. ### Custom [#custom] The custom plan offers discounted usage rates for customers with high transaction volume. Custom plans also include enterprise features like SSO, SCIM, and consolidated billing for integrated accounts. To request a custom plan, [contact us](https://www.stedi.com/contact). ## Pay-as-you-go billing [#pay-as-you-go-billing] Manage billing for pay-as-you-go accounts. ### Add or update payment method [#add-or-update-payment-method] To add or update your payment method: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. In the **Payment method** section, click **Edit**. Stedi bills any charges to the payment method on file. ### View your current balance [#view-your-current-balance] To view your current account balance: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. The billing page displays your current balance as well as your pricing plan at the top of the page. ### Review payment history [#review-payment-history] To view your payment history and download receipts: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. View your payment history in the **Payments** section and download receipts for individual payments. ### Manual top-up [#manual-top-up] You can manually add funds to your balance at any time. Charges and the updated balance are reflected immediately. To manually add to your balance: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. In the **Manual top-up** section, enter the amount you want to add (minimum $25). 4. Click **Top-up**. ### Configure auto-recharge settings [#configure-auto-recharge-settings] You can configure when Stedi automatically adds to your balance and how much to add each time. To configure your auto recharge settings: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. In the **Auto recharge** section, click **Edit** and set your preferred values: - **When balance is below**: The minimum balance that triggers an automatic recharge (minimum $10). - **Add this amount**: The amount to add when your balance falls below the trigger (minimum $25). Stedi automatically charges your payment method on file when your balance drops below the trigger. When a single recharge isn't enough to bring your balance back above the trigger, Stedi adds as many multiples of your recharge amount as needed and charges the total as a single payment. For example: If the trigger is $10 and the recharge amount is $25, a balance that drops to -$85 results in a single $100 charge rather than four separate $25 charges. When your account balance reaches $0, access is suspended immediately. You'll be unable to process new transactions. To avoid this, set your recharge amount and threshold based on your usage, and leave a generous buffer. ### Failed payments [#failed-payments] When an automatic recharge payment fails, you'll receive email and in-app notifications. You retain full access to your account until your balance reaches $0. The fastest way to restore a positive balance is to retry the failed payment: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. Check that your payment method is valid and has sufficient funds. For example, ensure your credit card hasn't expired and has enough available credit. 4. Update your payment method if needed. 5. Retry the failed payment. #### Failed payment notifications [#failed-payment-notifications] You'll receive email and in-app notifications at key points in the failed payment process: - **Payment failure**: When an auto-recharge payment fails. - **Access suspended**: When your balance reaches $0 and account access is suspended. - **16-day reminder**: When your account has been suspended for 16 days, reminding you that your account will be closed after 30 days of suspension. - **25-day reminder**: When your account has been suspended for 25 days, reminding you that your account will be closed after 30 days of suspension. - **Access restored**: When your balance returns to positive and access is restored. Stedi sends all email notifications to your account admins, billing members, and billing email addresses. #### Account suspension and closure [#account-suspension-and-closure] When your balance reaches $0 or goes negative, Stedi immediately suspends your account: - **API access is suspended**: You cannot process new transactions. - **Portal access is limited**: You can only access billing and payment settings to resolve the issue. As soon as your balance returns to positive (through a successful retry payment or an auto recharge), Stedi restores full access. If your account remains suspended for 30 consecutive days, it becomes eligible for closure. You'll receive reminder emails at 14 days and 5 days before closure. ## Custom billing [#custom-billing] Manage billing for custom plan accounts. ### Download invoices [#download-invoices] To download invoices: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. Download your latest invoice from the top of the page, or download past invoices from the **Payments** section. ### Pay invoices [#pay-invoices] Your invoices come from Stripe, our payment service provider. You can pay any open invoice from the Stedi portal: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. Click **Pay invoice** on the latest invoice at the top of the page, or next to any unpaid invoice in the **Payments** section. 4. Complete the payment on Stripe's hosted invoice page, which opens in a new tab. Contact [ar@stedi.com](mailto:ar@stedi.com) to discuss an invoice or payment. ### Past-due invoices [#past-due-invoices] An invoice becomes past due the day after its due date. When you have a past-due invoice, account admins see: - A red banner at the top of every page in the Stedi portal with a link to pay the oldest past-due invoice. - A notice at the top of the billing page that lists the oldest past-due invoice, its amount, and its due date. - A **Past due** badge next to the invoice in the **Payments** section. The banner and notice disappear once you pay all past-due invoices. Stedi also sends reminders 7, 15, and 30 days after the due date. Starting 15 days after the due date, the banner and notice warn that your account is at risk of suspension. ### Suspended accounts [#suspended-accounts] Stedi can suspend your account when invoices remain unpaid. While your account is suspended, you can't send or receive transactions. To restore access, pay all outstanding invoices from the billing page. Once they're paid, Stedi automatically restores your access and sends you an **Access restored** notification. ## Download W9 form [#download-w9-form] To download Stedi's W9 tax form: 1. Go to your [Account settings](https://portal.stedi.com/app/settings/account-details). 2. Click **Billing**. 3. In the **Tax information** section, click **Download**. # Build with AI Source: https://www.stedi.com/docs/healthcare/build-with-ai Stedi provides AI-powered tools and resources to help you build eligibility and claims processing workflows faster. - **Build agents that work with eligibility data:** Install the [Model Context Protocol (MCP) server](#model-context-protocol-server) - **Code with AI assistants:** Give them [AI-friendly versions](#ai-friendly-documentation) of our developer guides and API specifications, and use [test workflows](#test-workflows) to develop without real patient data ## Get started [#get-started] Try building with Stedi's AI-friendly resources by following our step-by-step tutorial. You'll build a functional insurance verification app in under 30 minutes using Stedi's JSON Eligibility API and a coding agent like Claude Code or Cursor. The tutorial walks through the complete process: setting up your Stedi account, generating test API keys, building a Next.js backend with AI assistance, and creating a web UI. You'll use the same AI-friendly documentation and test workflows described on this page. [Build an insurance verification app with a coding agent](https://www.stedi.com/blog/build-an-insurance-verification-app-with-a-coding-agent) ## Test workflows [#test-workflows] Stedi provides test workflows that AI coding agents can use to build and test integrations without using real patient data or contacting actual payers. ### Get a test API key [#get-a-test-api-key] Test API keys allow you to send mock requests and receive realistic responses without transmitting PHI or PII. When submitting through Stedi's APIs, use a test API key: 1. Log into your [Stedi account](https://portal.stedi.com/app). 1. Click **API keys** in the side navigation. 1. Click **+ Generate new API Key**. 1. Enter descriptive name for the API key. 1. Choose **Test** as the **Mode**. 1. Click **Generate**. 1. Copy your key and store it in a secure location. Learn more about [API authentication](/healthcare/api-reference#authentication). ### Test eligibility checks [#test-eligibility-checks] Use your test API key to send [mock eligibility requests](/healthcare/api-reference/mock-requests-eligibility-checks) that return realistic responses including coverage indicators, copays, and deductibles. Mock requests work with Stedi's JSON, Raw X12, and SOAP endpoints. Mock requests are free and don't incur charges. Here's an example test request your AI assistant can use: ```bash curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3' \ --header 'Authorization: Key {test_api_key}' \ --header 'Content-Type: application/json' \ --data '{ "tradingPartnerServiceId": "60054", "provider": { "organizationName": "Provider Name", "npi": "1999999984" }, "subscriber": { "firstName": "John", "lastName": "Doe", "memberId": "AETNA9wcSu" }, "dependents": [ { "firstName": "Jordan", "lastName": "Doe", "dateOfBirth": "20010714" } ], "encounter": { "serviceTypeCodes": ["30"] } }' ``` ### Test claims [#test-claims] Use your test API key to submit test claims. Stedi doesn't forward test claims to payers. Instead, we apply our entire catalog of [edits and repairs](/healthcare/claim-edits-and-repairs) and then generate a test 277CA claim acknowledgment indicating whether the test claim passed our validation. When you submit test claims to the Stedi Test Payer (ID: `STEDI`), Stedi also generates a test 835 Electronic Remittance Advice (ERA). Visit [Test claim workflows](/healthcare/test-claims-workflow) for complete instructions on sending test claims and receiving test responses. ## Data security and compliance [#data-security-and-compliance] When using AI tools with healthcare data, follow your organization's data handling policies to ensure HIPAA compliance. Most organizations require a Business Associate Agreement (BAA) with third-party AI tools before using them with production healthcare data. Stedi's [test workflows](#test-workflows) let you develop and test integrations without transmitting PHI or PII. ## Model Context Protocol server [#model-context-protocol-server] The [Model Context Protocol (MCP) server](/healthcare/mcp-server) provides tools that AI agents can use to perform and troubleshoot eligibility checks through Stedi's APIs. It includes built-in logic for finding the correct payer, handling errors, and implementing retry strategies, so you can focus on building your agent's core functionality. The MCP server is ideal for: - Voice agents that need to verify benefits in real time - Revenue Cycle Management (RCM) workflow agents that validate coverage before scheduling appointments - Development teams using MCP clients to test integrations and troubleshoot issues The MCP server supports both API key and OAuth 2.x authentication, and works with popular AI platforms like Claude Code. For production accounts, the MCP server works with [test mode](/healthcare/test-mode). In test mode, you can use test API keys to develop and test your AI agents without transmitting PHI or PII. ## AI-friendly documentation [#ai-friendly-documentation] Stedi offers documentation in AI-friendly formats that you can provide to tools like ChatGPT, Claude, Cursor, and other AI assistants. For best results, provide both [OpenAPI specifications](#openapi-specifications) and [`llms-full.txt`](#llms-full-txt) for comprehensive developer guides. ### OpenAPI specifications [#openapi-specifications] [github.com/Stedi/openApi](https://github.com/Stedi/openApi) OpenAPI specifications provide machine-readable API definitions including endpoints, parameters, request/response schemas, and real-world examples. **When to use:** Provide these to your AI assistant when you need it to help you generate API calls, understand API structure, or validate request and response formats. ### llms.txt [#llmstxt] [/llms.txt](https://www.stedi.com/docs/llms.txt) A simple list of available documentation pages with titles and descriptions. **When to use:** Use this to give your AI assistant a quick overview of available pages. Many AI assistants check for this file automatically. ### llms-full.txt [#llms-fulltxt] [/llms-full.txt](https://www.stedi.com/docs/llms-full.txt) The complete markdown content of all documentation pages in a single file. This includes guides, how-tos, troubleshooting, and conceptual explanations. **When to use:** Provide this to your AI assistant when you need comprehensive context about how to build eligibility and claims processing workflows with Stedi. ### Individual markdown pages [#individual-markdown-pages] You can access individual documentation pages in markdown format at `/llms.mdx/[page-url]`. For example, `/llms.mdx/healthcare/send-eligibility-checks`. You can also copy them from the UI by clicking the **Copy for LLM** menu at the top of each documentation page. **When to use:** Use individual pages when you have token limits that prevent loading `llms-full.txt`, or when you only need context about specific features. ### How to use these resources [#how-to-use-these-resources] The specific method depends on which AI tool you're using. You may want to add references to your agent's configuration - for example, a [Cursor rule](https://cursor.com/docs/rules#rule-file-structure) or [Claude skill](https://code.claude.com/docs/en/skills) file. This ensures the context is applied automatically across sessions. ``` You have access to Stedi's healthcare API documentation and specifications: - Full documentation: https://www.stedi.com/docs/llms-full.txt - OpenAPI specs: https://github.com/Stedi/openApi When helping with Stedi integrations, consult these resources first. ``` You can also provide these resources as context when starting a conversation with tools like ChatGPT, Claude, or Google Gemini. ``` I'm working with Stedi's healthcare APIs. Please reference: - Full documentation: https://www.stedi.com/docs/llms-full.txt - OpenAPI specs: https://github.com/Stedi/openApi Help me [describe your task]. ``` **Example prompts** Once your AI assistant has access to the documentation, you can ask it to help with tasks like: - "Help me implement eligibility checks for a new RCM system. Show me how to construct the JSON request and handle the response." - "Generate TypeScript code to submit professional claims using Stedi's API, including error handling and retry logic." - "What's the correct Claim Frequency Code for resubmitting an institutional claim that was already adjudicated?" Always review and test AI-generated code before using it in production. While AI assistants can help you build integrations faster, you should verify that the generated code meets your specific requirements and follows your organization's standards. # Check claim status Source: https://www.stedi.com/docs/healthcare/check-claim-status You may need to check the status of a claim when you don't receive a 277CA or 835 ERA response from the payer within your expected timeframe. You may also want to check the status of a claim submitted by another entity. For example, a billing agency may want to check the status of a claim submitted by their customer, who is a provider. ## Testing [#testing] You can only run real-time claim status checks for production claims that have entered the payer's processing system. Requests for test claims or claims the payer hasn't yet accepted for processing won't return results. That's why our [claim status best practices](#best-practices) recommend waiting at least a week after submission before attempting to check a claim's status. You also won't be able to check the status if Stedi or the payer rejected a claim with a [277CA claim acknowledgment](/healthcare/receive-claim-responses). You can find examples of claim status requests and responses in the [sample requests and responses](#sample-requests-and-responses) section on this page. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit real-time claim status checks through a new clearinghouse. This enrollment process is separate from the transaction enrollment process for 837 claims. You can check whether a specific payer requires transaction enrollment for real-time claim status checks in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for real-time claim status. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim status checks, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. For any questions on payer nuances, contact Stedi's support team. ## Best practices [#best-practices] We recommend following these best practices when checking claim status. - **Wait for the payer to receive the claim.** You can check a claim's status once the payer has received and accepted it into their processing system - you don't need to wait until the claim is fully adjudicated. We recommend waiting at least 2-3 days after submitting the claim or until you receive a 277CA claim acknowledgment from the payer indicating they have received the claim. - **Check periodically.** If you haven't received an 835 ERA, we recommend checking the claim's status at 21 days after submission and then again at 1 month. - **Supply a date of service range.** We recommend the following when providing dates of service: - The date range should be at least plus or minus 7 days from the date of the services listed in the claim. The payer may have stored a different date for the encounter than the one in your records, so providing a date range increases the likelihood that the payer will find a match. - Keep the date range to 30 days or less. Some payers may reject requests with a date range that is too wide. - Don't submit future dates - only submit date ranges up to and including today's date. Some payers reject requests containing future service dates. - **Start with the recommended base request.** Providing too much information in a claim status request can negatively affect the results. We recommend starting with only the minimum required information. ## Manual submission [#manual-submission] You can submit a claim status request manually through the [Create claim status check](https://portal.stedi.com/app/healthcare/claims/status/create) form in Stedi. The response view shows both claim-level and service-level details. If the claim status request returns information for multiple claims, you can use the dropdown to navigate between them. ## API submission [#api-submission] Call one of the following endpoints to send a 276/277 real-time claim status: - [Claim Status](/healthcare/api-reference/post-healthcare-claim-status) to send requests in JSON - [Claim Status Raw X12](/healthcare/api-reference/post-healthcare-claim-status-raw-x12) to send requests in X12 EDI Both endpoints return a synchronous claim status response from the payer in JSON format. The response may contain information about more than one claim, if the payer has multiple claims on file that match the information you provided. ### Headers [#headers] When constructing the request, you must include the following information in HTTP headers: - **`Authorization`:** [Generate an API key](https://portal.stedi.com/app/settings/developer/api-keys) to use for authentication. - **`Content-Type`:** Set to `application/json`. ### Body - JSON [#body---json] For best results, you should start with our [recommended base request](/healthcare/check-claim-status#json-base-request) and add more information only as needed. Note that objects marked as **required** are required for all requests, while others are conditionally required depending on the circumstances. When you include a conditionally required object, you must include all of its required properties. For example, you must always include the `subscriber` object in requests, but you only need to include the `serviceLinesInformation` object when you want to request the status for a specific service line. #### JSON base request [#json-base-request] We recommend starting with the following properties in a request to the [Real-Time Claim Status JSON](/healthcare/api-reference/post-healthcare-claim-status) endpoint: | Information | Description | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tradingPartnerServiceId` | This is the payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. You can send requests using the primary payer ID, the Stedi payer ID, or any payer ID alias listed in the payer record. | | `providers` | The billing provider information from the original claim. To start, provide only the `npi`, `organizationName`, and `providerType` properties. We recommend omitting the provider's name - Stedi uses the name on the provider's National Plan and Provider Enumeration System (NPPES) record. Only include it if you believe that the provider name on file with the payer differs from the provider name in NPPES. | | `subscriber` | The subscriber information from the original claim. To start, provide only the `firstName`, `lastName`, `dateOfBirth`, `gender`, and `memberId` properties. | | `dependent` | The dependent information from the original claim. To start, provide only the `firstName`, `lastName`, `dateOfBirth`, and `gender` properties. If the patient is the subscriber, you can omit this object. | | `encounter` | The encounter information from the original claim. To start, provide only the `beginningDateOfService` and `endDateOfService` properties. Provide a date range that is plus or minus 7 days from the date of service listed in the claim for best results. Only use date ranges that are up to and including today's date - some payers reject requests containing future service dates. | The following examples show two base request payloads: one where the patient is the subscriber and one where the patient is the dependent. They include only the minimum recommended information: {/* schema:ClaimStatusRequestContent */} ```json { "encounter": { "beginningDateOfService": "20240318", "endDateOfService": "20240402" }, "providers": [ { "npi": "1999999984", "organizationName": "Behavioral Services P.C.", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "Jane", "lastName": "Doe", "dateOfBirth": "19000806", "gender": "F", "memberId": "111222333" }, "tradingPartnerServiceId": "3429" } ``` {/* schema:ClaimStatusRequestContent */} ```json { "encounter": { "beginningDateOfService": "20240318", "endDateOfService": "20240402" }, "providers": [ { "npi": "1999999984", "organizationName": "Behavioral Services P.C.", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "Jane", "lastName": "Doe", "dateOfBirth": "19000806", "gender": "F", "memberId": "111222333" }, "dependent": { "firstName": "John", "lastName": "Doe", "dateOfBirth": "19100323", "gender": "M" }, "tradingPartnerServiceId": "3429" } ``` ### Body - X12 EDI [#body---x12-edi] Your payload must conform to [276 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/claim-status-request-x212/01GRYB6A4XEJQ61Y2K2KT606E5). For best results, you should start with our [recommended base request](/healthcare/check-claim-status#x12-base-request) and add more information only as needed. #### Envelope and header [#envelope-and-header] Stedi generates its own `ISA` and `GS` headers and `IEA` and `GE` trailers before sending your claim status request to the payer. You can submit your request to Stedi with any values in these segments, as long as they conform to the X12 EDI specification. However, you must set `ST03` (Version, Release, or Industry Identifier) to `005010X212`. #### X12 base request [#x12-base-request] We recommend starting with the following properties in a request to the [Real-Time Claim Status Raw X12](/healthcare/api-reference/post-healthcare-claim-status-raw-x12) endpoint: | Loop | Fields and Description | | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Loop 2100A` (Payer Name) | You'll need to provide `NM1` (Payer Name). Specifically, `NM109` (Payer Identifier) must be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). For example, you can use `60054`, `HPQRS`, `AETNA`, or any other listed payer ID alias for Aetna. | | `Loop 2100B` (Information Receiver Name) | The information for the entity making the request. To start, provide only the following:
  • **`NM103`** (Information Receiver Last or Organization Name)
  • **`NM108`** (Identification Code Qualifier)
  • **`NM109`** (Information Receiver Identification Number) - this is the Electronic Transmitter Identification Number (ETIN)
If `NM103` is blank, Stedi sends `SUBMITTER` as the name. | | `Loop 2100C` (Provider Name) | The billing provider's information from the original claim. To start, provide only the following:
  • **`NM101`** (Entity Identifier Code)
  • **`NM102`** (Entity Type Qualifier)
  • **`NM103`** (Provider Last or Organization Name)
  • **`NM108`** (Identification Code Qualifier) set to `XX` for the NPI
  • **`NM109`** (Provider Identifier) - the provider's NPI
We recommend leaving `NM103` blank - Stedi uses the name on the provider's NPPES record. Only include the name if you believe that the provider name on file with the payer differs from the provider name in NPPES. | | `Loop 2000D` (Subscriber) | The subscriber information from the original claim. To start, provide the following:
  • **`HL`** (Hierarchical Level)
  • **`DMG01`** (Date Time Period Format Qualifier)
  • **`DMG02`** (Subscriber Birth Date)
  • **`DMG03`** (Subscriber Gender Code)
| | `Loop 2100D` (Subscriber Name) | The subscriber information from the original claim. To start, provide the following:
  • **`NM101`** (Entity Identifier Code)
  • **`NM102`** (Entity Type Qualifier)
  • **`NM103`** (Subscriber Last Name)
  • **`NM104`** (Subscriber First Name)
  • **`NM109`** (Member Identification Number)
| | `Loop 2000E` (Dependent) | The dependent information from the original claim. If the patient is the subscriber, you can omit this loop. To start, provide only the following:
  • **`DMG02`** (Dependent Birth Date)
  • **`DMG03`** (Dependent Gender Code)
| | `Loop 2100E` (Dependent Name) | The dependent information from the original claim. If the patient is the subscriber, you can omit this loop. To start, provide only the following:
  • **`NM103`** (Patient Last Name)
  • **`NM104`** (Patient First Name)
| | `Loop 2200D` (Claim Status Tracking Number) | The encounter information from the original claim. To start, only provide the following:
  • **`TRN`** (Claim Status Tracking Number)
  • **`DTP`** (Claim Service Date): Provide a date range that is plus or minus 7 days from the date of service listed in the claim for best results. Only use date ranges that are up to and including today's date - some payers reject requests containing future service dates.
| The following examples show two base request payloads: one where the patient is the subscriber and one where the patient is the dependent. They include only the minimum recommended information: ``` ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *250916*2048*^*00501*000000001*0*T*>~ GS*HR*SENDERGS*RECEIVERGS*20260916*204811*1*X*005010X212~ ST*276*0001*005010X212~ BHT*0010*13*ABC45678*20260915*1425~ HL*1**20*1~ NM1*PR*2*PAYER NAME*****PI*87726~ HL*2*1*21*1~ NM1*41*2*REQUESTING PROVIDER NAME*****46*123456789~ HL*3*2*19*1~ NM1*1P*2*SERVICE PROVIDER NAME*****XX*1999999984~ HL*4*3*22*0~ DMG*D8*19000101*F~ NM1*IL*1*DOE*JANE****MI*MEMBERID123456~ TRN*1*123456789~ DTP*472*RD8*20260601-20260614~ SE*14*0001~ GE*1*1~ IEA*1*000000001~ ``` ``` ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *250916*2048*^*00501*000000001*0*T*>~ GS*HR*SENDERGS*RECEIVERGS*20260916*204811*1*X*005010X212~ ST*276*0001*005010X212~ BHT*0010*13*ABC12345*20260915*1425~ HL*1**20*1~ NM1*PR*2*PAYER NAME*****PI*87726~ HL*2*1*21*1~ NM1*41*2*REQUESTING PROVIDER NAME*****46*123456789~ HL*3*2*19*1~ NM1*1P*2*SERVICE PROVIDER NAME*****XX*1999999984~ HL*4*3*22*0~ DMG*D8*19000101*F~ NM1*IL*1*DOE*JANE****MI*MEMBERID123456~ HL*5*4*23*0~ DMG*D8*20010104*M~ NM1*QC*1*DOE*JOHN~ TRN*1*123456789~ DTP*472*RD8*20260601-20260614~ SE*17*0001~ GE*1*1~ IEA*1*000000001~ ``` ### Character restrictions [#character-restrictions] Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause errors. The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included. The following special characters are included: ![Basic special characters](/images/basic-special-characters.png) The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`. The following additional special characters are included: ![Extended special characters](/images/extended-special-characters-healthcare.png) In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, and `^`. X12 doesn't support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly. - **JSON endpoint:** Don't include delimiter characters anywhere in your request data. - **Raw X12 endpoint:** You can use these characters as delimiters, but not in the body of the request data. ### Delimiter normalization [#delimiter-normalization] Stedi reserves certain characters for delimiters in X12 EDI transactions. When these delimiter characters appear within data values - meaning they're used as content and not as actual delimiters, such as within a subscriber's name - Stedi replaces them to prevent parsing issues. Stedi normalizes delimiters within transaction data as follows: | Character found in data | Replacement | Stedi's reserved delimiter type it conflicts with | | ----------------------- | ----------- | ------------------------------------------------- | | `*` | `\|` | Element separator | | `^` | `\|` | Repetition separator | | `` ` `` | `'` | Component element separator | | `~` | `\|` | Segment terminator | **Examples:** - `O*CONNOR` becomes `O|CONNOR` - `CODE^01` becomes `CODE|01` - ``O`CONNOR`` becomes `O'CONNOR` - `MSG~HELLO` becomes `MSG|HELLO` If you parse raw X12 EDI responses, ensure your parser reads delimiters from the `ISA` segment instead of assuming fixed delimiters. ### Timeout [#timeout] Requests to payers typically time out at 1 minute, though Stedi can keep connections open longer than that if needed. ### Concurrency limit [#concurrency-limit] Our real-time claim status endpoints share a concurrency pool with other real-time healthcare APIs. For more information, visit [Concurrency Limits](/healthcare/api-reference#concurrency-limits). ### Recommended API clients [#recommended-api-clients] You may want to use an API client to make testing and debugging easier. We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead. ## Sample requests and responses [#sample-requests-and-responses] The following examples show a 276 claim status request and 277 claim status response for Stedi's JSON endpoint. To learn what the codes in these responses mean, visit [Interpret claim status](/healthcare/claim-status-codes). ### Accepted claims [#accepted-claims] The following example shows a claim status request and response for a claim that has been accepted by the payer and is awaiting payment. The payer is UnitedHealthcare, and the request uses the payer ID alias `3429`. ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2 \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "encounter": { "beginningDateOfService": "20240318", "endDateOfService": "20240402" }, "providers": [ { "npi": "1999999984", "organizationName": "Behavioral Services P.C.", "providerType": "BillingProvider" } ], "subscriber": { "dateOfBirth": "19000806", "firstName": "Jane", "lastName": "Doe", "gender": "F", "memberId": "111222333" }, "tradingPartnerServiceId": "3429" }' ``` {/* schema:ClaimStatusResponseContent */} ```json { "claims": [ { "claimStatus": { "amountPaid": "95.55", "claimServiceDate": "20240325", "effectiveDate": "2024-03-29", "paidDate": "2024-03-29", "patientAccountNumber": "3333333", "statusCategoryCode": "P5", "statusCategoryCodeValue": "Pending/Payer Administrative/System hold", "statusCode": "3", "statusCodeValue": "Claim has been adjudicated and is awaiting payment cycle.", "submittedAmount": "238.44", "trackingNumber": "222222222", "tradingPartnerClaimNumber": "5332034153-KK" }, "serviceDetails": [ { "service": { "amountPaid": "95.55", "procedureId": "90837", "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes", "serviceIdQualifierCode": "HC", "submittedAmount": "238.44", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2024-03-29", "statusCategoryCode": "P5", "statusCategoryCodeValue": "Pending/Payer Administrative/System hold", "statusCode": "3", "statusCodeValue": "Claim has been adjudicated and is awaiting payment cycle." } ] } ] } ], "controlNumber": "222222222", "meta": { "applicationMode": "production", "traceId": "bf27223e-46c3-451e-b2b4-46f3f0b6fe3b" }, "payer": { "organizationName": "UNITEDHEALTHCARE", "payerIdentification": "3429" }, "providers": [ { "organizationName": "Behavioral Services P.C.", "providerType": "BillingProvider", "taxId": "123456789" }, { "npi": "1999999984", "organizationName": "Behavioral Services P.C.", "providerType": "ServiceProvider" } ], "reassociationKey": "000000001", "status": "success", "subscriber": { "firstName": "JANE", "lastName": "DOE", "memberId": "111222333" }, "tradingPartnerServiceId": "3429", "x12": "..." } ``` The following example shows a claim status request and response for a claim that has been processed and paid. The payer is UnitedHealthcare, and the request uses the primary payer ID `87726`. Note that this example response includes the payment amount and the service line item details. Some payers return this information in claim status responses, but most don't. You should typically plan to get these details from the 835 Electronic Remittance Advice (ERA) instead. ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2 \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "tradingPartnerServiceId": "87726", "providers": [ { "organizationName": "Provider Name", "npi": "1999999984", "providerType": "BillingProvider" } ], "subscriber": { "memberId": "UHC123456", "firstName": "Jane", "lastName": "Doe", "dateOfBirth": "19710101" }, "encounter": { "beginningDateOfService": "20250630", "endDateOfService": "20250702" } }' ``` {/* schema:ClaimStatusResponseContent */} ```json { "claims": [ { "claimStatus": { "amountPaid": "108.77", "checkIssueDate": "2025-07-17", "checkNumber": "A123456789", "claimServiceDate": "20250701", "effectiveDate": "2025-07-17", "paidDate": "2025-07-15", "patientAccountNumber": "12345678", "statusCategoryCode": "F1", "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.", "statusCode": "65", "statusCodeValue": "Claim/line has been paid.", "submittedAmount": "267.54", "trackingNumber": "0123456789", "tradingPartnerClaimNumber": "0123456789" }, "serviceDetails": [ { "service": { "amountPaid": "108.77", "procedureId": "90837", "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes", "serviceIdQualifierCode": "HC", "submittedAmount": "267.54", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-07-17", "statusCategoryCode": "F1", "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.", "statusCode": "107", "statusCodeValue": "Processed according to contract provisions (Contract refers to provisions that exist between the Health Plan and a Provider of Health Care Services)." } ] } ] } ], "controlNumber": "123456789", "payer": { "organizationName": "UNITEDHEALTHCARE", "payerIdentification": "87726" }, "providers": [ { "npi": "1999999984", "organizationName": "Provider Name", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "Jane", "lastName": "Doe", "memberId": "UHC123456" }, "tradingPartnerServiceId": "87726", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *250912*1718*^*00501*123456789*0*P*`~GS*HN*STEDI*117151744*20250912*171842*1*X*005010X212~ST*277*1001*005010X212~BHT*0010*08*0123456789*20250912*171841*DG~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*1234567890~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*0~NM1*IL*1*DOE*JANE****MI*UHC123456~TRN*2*0123456789~STC*F1`65*20250717**267.54*108.77*20250715**20250717*123456789~REF*1K*0123456789~REF*EJ*12345678~DTP*472*D8*20250701~SVC*HC`90837`GT*267.54*108.77****1~STC*F1`107*20250717~DTP*472*D8*20250701~SE*19*1001~GE*1*1~IEA*1*123456789~" } ``` ### Denied claims [#denied-claims] The following example shows a claim status request and response for a denied claim. The payer is Anthem Blue Cross Blue Shield of Virginia, and the request uses the primary payer ID `423`. In this example, the `subscriber` in the request is actually a dependent using the subscriber's member ID. ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "encounter": { "beginningDateOfService": "20241101", "endDateOfService": "20241112" }, "providers": [ { "npi": "1999999984", "organizationName": "PROVIDER NAME", "providerType": "BillingProvider" } ], "subscriber": { "dateOfBirth": "19800101", "firstName": "JANE", "lastName": "DOE", "memberId": "XYZO9NUSPD6R" }, "tradingPartnerServiceId": "423" }' ``` {/* schema:ClaimStatusResponseContent */} ```json { "claims": [ { "claimStatus": { "amountPaid": "0", "claimServiceDate": "20241107-20241107", "effectiveDate": "2024-11-10", "paidDate": "2024-11-10", "patientAccountNumber": "12345678", "statusCategoryCode": "F0", "statusCategoryCodeValue": "Finalized - The claim/encounter has completed the adjudication cycle and no more action will be taken.", "statusCode": "1", "statusCodeValue": "For more detailed information,see remittance advice.", "submittedAmount": "200.02", "trackingNumber": "VZYTLPWDTPMIG66PX0GRNPFGR8", "tradingPartnerClaimNumber": "XP5BPO2GRUVIR" }, "serviceDetails": [ { "service": { "amountPaid": "0", "procedureId": "90800", "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes", "serviceIdQualifierCode": "HC", "submittedAmount": "200.02", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2024-11-10", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge." } ] } ] } ], "controlNumber": "987654321", "dependent": { "firstName": "JANE", "lastName": "DOE" }, "payer": { "organizationName": "ANTHEM BLUE CROSS BLUE SHIELD", "payerIdentification": "423" }, "providers": [ { "npi": "1999999984", "organizationName": "PROVIDER NAME", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "JOHN", "lastName": "DOE", "memberId": "XYZO9NUSPD6R" }, "tradingPartnerServiceId": "423", "x12": "..." } ``` The following examples show a request and response for a denied claim. The payer is Aetna, and the request uses the primary payer ID `60054`. In this example, the claim is for a dependent. ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "dependent": { "dateOfBirth": "20010714", "firstName": "JORDAN", "lastName": "DOE" }, "encounter": { "beginningDateOfService": "20250804", "endDateOfService": "20250806" }, "providers": [ { "npi": "1999999984", "organizationName": "Provider Name", "providerType": "BillingProvider" } ], "subscriber": { "dateOfBirth": "19710101", "firstName": "JANE ", "lastName": "DOE", "memberId": "AETNA12345" }, "tradingPartnerName": "Aetna", "tradingPartnerServiceId": "60054" }' ``` {/* schema:ClaimStatusResponseContent */} ```json { "claims": [ { "claimStatus": { "amountPaid": "0", "checkIssueDate": "2025-08-14", "checkNumber": "123456789", "claimServiceDate": "20250805", "effectiveDate": "2025-09-12", "paidDate": "2025-08-09", "patientAccountNumber": "123456789", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge.", "submittedAmount": "1101", "trackingNumber": "123456789", "tradingPartnerClaimNumber": "123456789" }, "serviceDetails": [ { "service": { "amountPaid": "0", "procedureId": "D1120", "serviceIdQualifier": "American Dental Association Codes", "serviceIdQualifierCode": "AD", "submittedAmount": "141", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-09-12", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge." } ] }, { "service": { "amountPaid": "0", "procedureId": "D0801", "serviceIdQualifier": "American Dental Association Codes", "serviceIdQualifierCode": "AD", "submittedAmount": "274", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-09-12", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge." } ] }, { "service": { "amountPaid": "0", "procedureId": "D0603", "serviceIdQualifier": "American Dental Association Codes", "serviceIdQualifierCode": "AD", "submittedAmount": "161", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-09-12", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "107", "statusCodeValue": "Processed according to contract provisions (Contract refers to provisions that exist between the Health Plan and a Provider of Health Care Services)." } ] }, { "service": { "amountPaid": "0", "procedureId": "D0350", "serviceIdQualifier": "American Dental Association Codes", "serviceIdQualifierCode": "AD", "submittedAmount": "145", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-09-12", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge." } ] }, { "service": { "amountPaid": "0", "procedureId": "D0350", "serviceIdQualifier": "American Dental Association Codes", "serviceIdQualifierCode": "AD", "submittedAmount": "145", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-09-12", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge." } ] }, { "service": { "amountPaid": "0", "procedureId": "D0330", "serviceIdQualifier": "American Dental Association Codes", "serviceIdQualifierCode": "AD", "submittedAmount": "235", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2025-09-12", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge." } ] } ] }], "controlNumber": "123456789", "dependent": { "firstName": "JORDAN", "lastName": "DOE" }, "payer": { "organizationName": "AETNA", "payerIdentification": "60054" }, "providers": [ { "npi": "1999999984", "organizationName": "Provider Name", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "JANE", "lastName": "DOE", "memberId": "AETNA12345" }, "tradingPartnerServiceId": "60054", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *250911*1726*^*00501*123456789*0*P*`~GS*HN*STEDI*117151744*20250911*1226*123456789*X*005010X212~ST*277*123456789*005010X212~BHT*0010*08*1234567890*20250911*13263006*DG~HL*1**20*1~NM1*PR*2*AETNA*****PI*60054~PER*IC*Aetna*TE*1234567890~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*1234567890~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*1~NM1*IL*1*DOE*JANE****MI*AETNA12345~HL*5*4*23~NM1*QC*1*DOE*JORDAN~TRN*2*123456789~STC*F2`585*20250911**1101*0*20250809**20250814*123456789*F2`107~REF*1K*123456789~REF*EJ*123456789~DTP*472*D8*20250805~SVC*AD`D1120*141*0****1~STC*F2`585*20250911~DTP*472*D8*20250805~SVC*AD`D0801*274*0****1~STC*F2`585*20250911~DTP*472*D8*20250805~SVC*AD`D0603*161*0****1~STC*F2`107*20250911********F2`735~DTP*472*D8*20250805~SVC*AD`D0350*145*0****1~STC*F2`585*20250911~DTP*472*D8*20250805~SVC*AD`D0350*145*0****1~STC*F2`585*20250911~DTP*472*D8*20250805~SE*34*123456789~GE*1*123456789~IEA*1*123456789~" } ``` ### No matches found [#no-matches-found] The following example shows a request and response for a claim status check that failed because the payer couldn't find a matching claim. The payer is Cigna, and the request uses the payer ID alias `CIGNA`. ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "encounter": { "beginningDateOfService": "20250526", "endDateOfService": "20250601" }, "providers": [ { "organizationName": "Provider Name", "providerType": "BillingProvider", "npi": "1999999984" } ], "subscriber": { "dateOfBirth": "19910202", "firstName": "James", "lastName": "Jones", "memberId": "CIGNA12345" }, "tradingPartnerServiceId": "CIGNA" }' ``` {/* schema:ClaimStatusResponseContent */} ```json { "claims": [ { "claimStatus": { "amountPaid": "0", "claimServiceDate": "20250526-20250601", "effectiveDate": "2025-09-12", "entity": "Insurer", "entityCode": "IN", "statusCategoryCode": "D0", "statusCategoryCodeValue": "Data Search Unsuccessful - The payer is unable to return status on the requested claim(s) based on the submitted search criteria.", "statusCode": "97", "statusCodeValue": "Patient eligibility not found with entity.", "submittedAmount": "0", "trackingNumber": "123456789" } } ], "controlNumber": "123456789", "payer": { "organizationName": "CHLIC", "payerIdentification": "CIGNA" }, "providers": [ { "npi": "1999999984", "organizationName": "Provider Name", "providerType": "BillingProvider" } ], "subscriber": { "firstName": "JAMES", "lastName": "JONES", "memberId": "CIGNA12345" }, "tradingPartnerServiceId": "CIGNA", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *250825*2004*^*00501*123456789*0*P*`~GS*HN*STEDI*117151744*20250825*1504*123456789*X*005010X212~ST*277*123456789*005010X212~BHT*0010*08*123456789*20250825*160450*DG~HL*1**20*1~NM1*PR*2*CHLIC*****PI*CIGNA~PER*IC*CHC Medical*TE*8002725713~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*123456789~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*0~NM1*IL*1*JONES*JAMES****MI*CIGNA12345~TRN*2*123456789~STC*D0`97`IN*20250825**0*0~DTP*472*RD8*20250526-20250601~SE*15*123456789~GE*1*123456789~IEA*1*123456789~" } ``` ### Validation error (999) [#validation-error-999] The [Real-Time Claim Status Raw X12](/healthcare/api-reference/post-healthcare-claim-status-raw-x12) endpoint returns a 999 Implementation Acknowledgment when the request data fails validation. Common failure reasons are missing required segments and invalid values. The following example request is missing required `HL` loops. ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/raw-x12 \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*SENDER *ZZ*STEDI *210101*1200*^*00501*000000001*0*P*>~GS*HR*SENDER*STEDI*20210101*120000*1*X*005010X212~ST*276*0001*005010X212~SE*1*0001~GE*1*1~IEA*1*000000001~" }' ``` ```json { "controlNumber": "736013965", "implementationTransactionSetSyntaxError": "5", "status": "ERROR", "transactionSetAcknowledgement": "R", "x12": "ISA*00* *00* *ZZ*STEDI *ZZ*SENDER *260403*0930*^*00501*736013965*0*P*`~GS*FA*STEDI*117151744*20260403*093042*736013965*X*005010X231A1~ST*999*0001*005010X231A1~AK1*HR*1*005010X212~AK2*276*0001*005010X212~IK3*SE*2**2~IK3*SE*2**3~IK5*R*5~AK9*R*1*1*0~SE*8*0001~GE*1*736013965~IEA*1*736013965~" } ``` ## Limitations [#limitations] Claim status requests are likely to fail in the following scenarios: ### Claims submitted by other providers [#claims-submitted-by-other-providers] You likely won't be able to check the status of a claim submitted by a different provider organization or by the patient themselves, even if you have all of the details about the claim. Payers generally only allow a provider organization to check the status of the claims they submitted. They impose these access controls to protect plan member privacy and confidential commercial data. ### Claims older than 18 months [#claims-older-than-18-months] Payers often archive claims older than 18 months, but this varies by payer. If you try to check the status of a claim from several years ago, the payer may return an error even if the information you submit matches a real historical claim. ### Claims outside the payer's system [#claims-outside-the-payers-system] You can only check the status of claims the payer has received and accepted into their processing system. Claims that haven't entered the payer's system won't return results, even if you have all the correct information. This is why we recommend waiting at least a week after submission before running a claim status check. You'll know the claim is in the payer's system when you receive a [277CA claim acknowledgment](/healthcare/claim-status-codes#277ca-claim-acknowledgments) from the payer with acceptance codes. Some payers never send a 277CA. ## Claim status codes [#claim-status-codes] Claim status responses contain category codes, status codes, and entity identifier codes that describe where the claim is in the payer's adjudication process. Visit [Interpret claim status](/healthcare/claim-status-codes) to learn where to find these codes in the response, what they mean, and how to handle common codes. ## Troubleshooting [#troubleshooting] If you're not getting results from your claim status checks, visit [Troubleshoot claim status checks](/healthcare/claim-status-troubleshooting) for detailed troubleshooting steps. ## Billing [#billing] Transactions are billable at the usage rates specified in your contract unless they fall into the following non-billable categories: - API calls that return 4xx or 5xx errors. For example, you won't be charged when a request fails because the payer isn't supported - in this case, Stedi returns a `400` HTTP status code. - Claim status responses that exclusively contain one or more of these non-billable [Claim Status Codes](https://x12.org/codes/claim-status-codes) in `STC01-02` (Status Code): `484`, `494`, `667`, or `689`. These codes appear in the [`claims[].claimStatus.statusCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.statusCode) and [`claims[].serviceDetails[].status[].statusCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.serviceDetails.status.statusCode) properties of the JSON response. # Claim edits and repairs Source: https://www.stedi.com/docs/healthcare/claim-edits-and-repairs Stedi checks each claim you submit for errors that could lead to rejections or denials. Depending on the type of error, Stedi will either fix the issue automatically (repair) or reject the claim (edit rejection) with instructions explaining what to change before resubmitting. This process helps ensure claims are complete, accurate, HIPAA-compliant, and aligned with payer-specific rules _before_ they reach the payer. Catching and resolving issues early through claim edits and repairs streamlines claims processing so providers can get paid faster. ## Repairs [#repairs] Repairs are fixes that Stedi applies to claims before checking them against our library of [claim edits](#edits). They fix problems with a known, deterministic solution, such as formatting issues. For example, if a phone number contains dashes or spaces, a repair might remove them so the claim passes validation. We don't use repairs to change substantive or clinical content. For example, a repair won't change a CPT code in a claim to reflect a different procedure. That's a substantive change that requires resubmission. Claim repairs don't require any action from you - they happen automatically, so you don't need to make changes or resubmit. ## Edits [#edits] Claim edits are validation rules that check a specific requirement. For example, an edit might check that each phone number in the claim contains exactly 10 digits. Many of our [repairs](#repairs) fix issues that would cause claims to fail one or more edits. For example, a repair may remove dashes in a phone number so it's in the right format for the edit validation. If the phone number still doesn't have 10 digits, the claim fails the edit. Stedi runs our entire library of edits on each claim you submit. This applies to both new claims and existing claims you're resubmitting through Stedi. When a claim fails one or more edits, Stedi rejects the claim and doesn't send it to the payer. You'll receive detailed error messages for all of the edits the claim failed along with instructions for what to change before resubmission. - **API:** Stedi returns an HTTP `400` status and includes the edit rejections in the `errors` array. The response's `x12` property also contains a 277CA rejection with the same errors. If Stedi can't build the 277CA, `x12` is `null`. - **Stedi portal:** Stedi indicates edit rejections immediately in the portal form. - **SFTP:** Stedi rejects the claim with a [277CA claim acknowledgment](/healthcare/submit-claims-sftp-retrieve-responses#277ca-claim-acknowledgment) containing the edit rejection details. You'll receive the 277CA rejection within minutes after claim submission in your `from-stedi` directory. You'll need to fix the issues causing the edit failures and resubmit the claim with the same Claim Frequency Code. For example, if you initially submitted the claim to Stedi with code `1`, you should resubmit it to Stedi with code `1`. ### Example edit rejections [#example-edit-rejections] The following example shows edit rejections returned in an API response, without the `x12` property. The `errors` array contains all the edits that the claim failed, along with detailed descriptions and follow-up actions: ```json { "status": "ERROR", "controlNumber": "1", "tradingPartnerServiceId": "62308", "claimReference": { "correlationId": "01AAAC3A5BB1CCCC3DDD5JJJJ3", "patientControlNumber": "12345678", "timeOfResponse": "2026-01-06T19:21:18.287Z", "payerId": "62308", "formatVersion": "5010", "rhclaimNumber": "01AAAC3A5BB1CCCC3DDD5JJJJ3", "serviceLines": [ { "lineItemControlNumber": "111222333" } ] }, "errors": [ { "code": "33", "description": "The subscriber date of birth, 20260201, is invalid. The date of birth cannot be later than the transaction date and must reflect a reasonable subscriber age. Correct and resubmit.", "followupAction": "Please Correct and Resubmit" }, { "code": "33", "description": "Diagnosis Code FZ9888 does not exist in ICD-10. Please review and resubmit.", "followupAction": "Please Correct and Resubmit" }, { "code": "33", "description": "Total claim charge amount ($130.00) does not equal the sum of all service line charge amounts ($109.20) for this claim. Correct and resubmit.", "followupAction": "Please Correct and Resubmit" } ], "meta": { "traceId": "bd67003d-ce55-4b94-a89d-66e11110d0c" }, "payer": { "payerName": "Cigna", "payerId": "62308" }, "httpStatusCode": "400 BAD_REQUEST" } ``` ### Stedi's edit database [#stedis-edit-database] Stedi has a growing library of claim edits, including edits for specific payers. You can review a filterable, up-to-date list of all our claim edits in our [Edits database](https://edits.stedi.com/). There's no standardized universal library of claim edits. However, a large number of industry-standard edits originate from HIPAA rules (such as using ICD-10 as the standard coding system) and from Centers for Medicare & Medicaid Services (CMS) rules, such as the National Correct Coding Initiative (NCCI). NCCI edits were originally developed by CMS for Medicare, but many non-Medicare payers have adopted them or use them as a baseline. Our goal is to eventually cover all non-provider-specific edits that can be deterministically applied to claims. You can submit requests for new edits or updates to existing ones through our [Request a claim edit](https://www.stedi.com/request-claim-edit) form. ### SNIP framework [#snip-framework] Edits are often categorized using the Strategic National Implementation Process (SNIP) framework. The framework was created by the Workgroup for Electronic Data Interchange (WEDI), which sets guidelines (but not standards) for how EDI should be implemented in healthcare. Each SNIP type, or level, checks a different aspect of a claim's correctness. You can find the SNIP level of all of our edits in the [Edits database](https://edits.stedi.com/). **SNIP Type 1: EDI Standard Integrity Testing** Edits that check whether the claim uses valid EDI syntax. Examples: - Are the EDI segments in the right order? - Do fields meant for numbers contain numbers? **SNIP Type 2: HIPAA Implementation Guide Requirement Testing** Edits that check whether the claim uses HIPAA-compliant X12 syntax. Examples: - Invalid phone numbers - Invalid date of birth - Invalid billing provider address - Missing primary payer **SNIP Type 3: HIPAA Balance Testing** Edits that check whether the billing amounts in the claim add up correctly. Examples: - Non-zero adjustment amounts - COB claims must be balanced - Total claim charges must equal line-level charges **SNIP Type 4: HIPAA Inter-Segment Situation Testing** Edits that check whether fields are present or missing based on the presence of other fields. Examples: - Missing accident date - Missing admission source code **SNIP Type 5: HIPAA External Code Set Testing** Checks that fields that use official HIPAA-adopted code sets only contain valid values. For example, an edit could check for invalid ICD-10-CM diagnosis codes. **SNIP Type 6: Product Type/Type of Service Testing** Edits that check whether the claim is valid and in the right format for the type of healthcare service listed. These edits catch mismatches between the procedure code being billed and the type of claim or service category. Examples: - Using a CDT dental code in an 837P professional claim. - Billing a surgery CPT code under a diagnostic service type. - Including a revenue code, which is only for 837I institutional claims, in an 837P professional claim. **SNIP Type 7: Trading Partner-Specific Testing** Edits that check whether the claim complies with rules specific to an individual trading partner or payer. These rules vary by payer and go beyond standard HIPAA requirements. While government payers like Medicare and Medicaid are common sources of payer-specific rules, SNIP Type 7 applies to any payer with unique requirements. Examples: - Invalid primary diagnosis on Medicare chiropractic claims - Missing initial treatment date for Medicare chiropractic claims - Missing referral number when the payer requires one # Acknowledgments and ERAs overview Source: https://www.stedi.com/docs/healthcare/claim-responses-overview Stedi and payers send 277CA claim acknowledgments after you submit a claim. Payers send 835 ERAs with payment details after they process it. You can receive two types of transactions after you submit a professional, institutional, or dental claim through Stedi's APIs, an SFTP connection, or the Stedi portal: - 277CA claim acknowledgments - 835 Electronic Remittance Advice (ERA) If you're submitting claims through SFTP, you'll also receive 999 Implementation Acknowledgments. Visit [SFTP submission](/healthcare/submit-claims-sftp-retrieve-responses#monitor-for-999-rejections-strongly-recommended) for details. ## Claim response overview [#claim-response-overview] Claim responses provide information about the status of a submitted claim as it moves through various stages of processing, validation, and adjudication. The following diagram illustrates the types of claim responses you may receive at each stage: ![Claim response lifecycle](/images/healthcare-apis/claim-response-lifecycle.png) Stedi validates the claim according to industry standards and payer-specific rules (edits). - If the claim fails validation, Stedi rejects it and doesn't send the claim to the payer. You'll need to correct the errors and resubmit. - If the claim passes validation, Stedi accepts it and routes it to the payer. This doesn't indicate that the claim has been approved, only that the claim has passed Stedi's validation. During this process, you may receive one or more 277CA claim acknowledgments from Stedi indicating the claim's acceptance or rejection status. You may receive additional 277CA claim acknowledgments from the payer letting you know that the claim has been received and whether it's been accepted or rejected for adjudication. - If the payer rejects the claim, you'll need to correct the errors and resubmit. The payer can reject a claim before or after it enters their processing system. - If the payer accepts the claim, they'll begin adjudication. This doesn't mean that the claim has been approved. Once a claim has entered the payer's processing system, the 277CA usually contains the Payer Claim Control Number (PCCN) assigned to the claim in: - [`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.tradingPartnerClaimNumber`](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.tradingPartnerClaimNumber) - `Loop 2200D REF02`, where `REF01` = `1K` (Payor's Claim Number) The payer may briefly pend the claim for additional review before making a final decision. This is common for high-dollar or complex claims which require manual review or supporting documentation (attachments). Once the claim has been adjudicated, you'll receive an 835 Electronic Remittance Advice (ERA) from the payer with the adjudication details for each line item. ## 277CA claim acknowledgment [#277ca-claim-acknowledgment] The 277CA indicates whether a claim was accepted for processing or rejected due to correctable errors, such as invalid data, missing information, or failure to comply with payer-specific rules. A rejection is different from a denial. Claims are denied during adjudication, so you'll only see denial statuses in the 835 Electronic Remittance Advice (ERA). A 277CA rejection indicates that the claim never made it to the adjudication step. In these cases, the 277CA will include error codes and descriptions to help you correct the issues before resubmitting the claim. You may receive multiple 277CAs for each claim you submit. You should monitor these 277CAs to track the claim's status as it moves through Stedi and the payer's systems: - **Clearinghouse:** You'll receive the first 277CA from Stedi within about 30 minutes of submitting the claim to indicate whether we have accepted or rejected it. You may receive additional 277CAs as we route the claim to the payer. - **Payer:** You may receive one or more 277CAs from the payer. Typically, there is one 277CA that indicates receipt of the claim and a second 277CA that contains summary counts of transactions received, information about accepted transactions, and details for rejected transactions. Each 277CA typically correlates to one 837 claim. However: - Some payers may send a single 277CA that [references multiple claims](/healthcare/receive-claim-responses#correlate-277ca). - Payers sometimes split a single claim into multiple claims during processing. In these cases, you may receive multiple 277CAs from the payer for the original claim you submitted. - Payers may send another 277CA when they forward a claim to a secondary payer in a coordination of benefits scenario. - (SFTP only) When you submit a [bulk claim](/healthcare/submit-claims-sftp-connection#bulk-claims), you'll typically receive one 277CA per claim. For example, if you submit a bulk transaction containing information for 10 claims, you'll typically receive 10 separate 277CAs. Paper claims receive a 277CA acknowledgment when the claim is mailed or when address validation fails. Visit [Submit paper claims](/healthcare/submit-paper-claims#277ca-claim-acknowledgments) for details. ### API responses [#api-responses] Our claim submission APIs return an initial 277CA in the `x12` property of the response body that indicates whether the claim has passed Stedi's claim edits. This 277CA is in X12 EDI format. When the claim fails one or more edits, the 277CA contains information about each error. These are the same error codes that appear in the `errors` array. Note that this initial 277CA only indicates whether Stedi has accepted or rejected the claim submission. You may receive additional 277CA acceptances or rejections as the claim is routed to the payer. You'll need to monitor for and retrieve those additional 277CAs through event destinations or polling. ```json { "status": "SUCCESS", "controlNumber": "1", "tradingPartnerServiceId": "62308", "claimReference": { "correlationId": "01KHC8Y4HNP0GVQ5NSVTPZBC0F", "patientControlNumber": "111222333", "timeOfResponse": "2026-02-13T19:51:51.496Z", "payerId": "62308", "formatVersion": "5010", "rhclaimNumber": "01KHC8Y4HNP0GVQ5NSVTPZBC0F", "serviceLines": [ { "lineItemControlNumber": "111222333" } ] }, "meta": { "traceId": "d61ca4bc-e9e7-4d0f-93d0-6f7ff810b0e6" }, "payer": { "payerName": "Cigna", "payerId": "62308" }, "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*1951*^*00501*980180479*0*T*`~GS*HN*STEDITEST*574183004559*20260213*195151*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC8YJE8EY6A5HFR00Z5H305*20260213*195151*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC8YJE8EY6A5HFR00Z5H305~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Data Health Services, Inc.*****46*123456~TRN*2*01KHC8Y4HNP0GVQ5NSVTPZBC0F~STC*A0`17`AY*20260213*WQ*109.2~QTY*90*1~AMT*YU*109.2~HL*3*2*19*1~NM1*85*2*Therapy Associates*****XX*1234567890~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*109.2~HL*4*3*PT*0~NM1*QC*1*Anon*John****MI*U7777788888~TRN*2*111222333~STC*A1`20*20260213*WQ*109.2~DTP*472*RD8*20240101-20240101~SE*25*0001~GE*1*1~IEA*1*980180479~", "httpStatusCode": "200 OK" } ``` ### 277CA vs. claim status check [#277ca-vs-claim-status-check] The 277CA contains different information than a real-time claim status check. Specifically: - **277CAs**: Tell you whether the payer has received a claim and accepted it for processing. If the claim was rejected, 277CAs tell you why so you can resubmit. They don't indicate whether the claim has been adjudicated or paid. - **Real-time claim status checks**: Tell you the status of a claim that's already been accepted into the payer's system. They provide information about whether the claim has been adjudicated, paid, denied, or is pending further review. That's why claim status checks can return more [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) than a 277CA. Specifically, they can return codes in the `P` range for pending claims and codes in the `F` range for final claim statuses. If you're waiting for an ERA, you should first check the related 277CA to confirm that the claim was accepted for processing. If the claim was rejected, you won't receive an ERA because the payer didn't adjudicate the claim. Then, you can run a real-time claim status check to get updates about the claim's adjudication and payment status. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) isn't required to receive 277CA claim acknowledgments through Stedi. Stedi automatically processes 277CAs for all claims submitted through Stedi, regardless of the submission method (API, SFTP, or portal). ## 835 Electronic Remittance Advice (ERA) [#835-electronic-remittance-advice-era] Processing ERAs always requires [transaction enrollment](/healthcare/transaction-enrollment) with the payer. The ERA contains details about payments for specific services and explanations for any adjustments or denials. The payer only sends ERAs for claims they have accepted for adjudication. If a claim is rejected in a 277CA, there's no adjudication or payment information to report. You'll typically only receive one 835 ERA per claim. However, payers may occasionally retransmit another identical [duplicate ERA](/healthcare/receive-claim-responses#duplicate-eras). ### Transaction enrollment [#transaction-enrollment-1] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Transaction enrollment is **always** required before a provider can receive 835 ERAs through Stedi. ERAs can only be sent to a single clearinghouse, so enrolling with Stedi cancels existing ERA enrollments you have through other clearinghouses. Once enrolled with Stedi, the provider will no longer receive ERAs from that payer through the previous clearinghouse. However, enrolling through Stedi for 835 ERAs doesn't affect your existing enrollments for other transaction types. For example, enrolling with Stedi won't automatically unenroll the provider from transactions, such as 837 claims, that they're processing through other clearinghouses. To enroll for ERAs through Stedi, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for claim payment (835 ERA). [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) # Interpret claim status Source: https://www.stedi.com/docs/healthcare/claim-status-codes Claim status codes tell you where a claim is in its lifecycle, such as accepted, rejected, pending, or finalized as paid or denied. Each status contains up to three codes: {/* prettier-ignore-start */} | Code type | What it tells you | Example | | --------- | ----------------- | ------- | | [Claim Status Category Code](#category-codes) | The broad state of a submission, claim, or service line. | `A7` (Rejected for Invalid Information) | | [Claim Status Code](#status-codes) | A more specific state. For rejections and denials, it typically gives the reason. | `562` (Entity's National Provider Identifier (NPI)) | | [Entity Identifier Code](#entity-identifier-codes) | The person, organization, or location related to the status. Not every status includes one. | `85` (Billing Provider) | {/* prettier-ignore-end */} This page explains where to find the codes in 277CA claim acknowledgments and claim status responses, how they differ from the statuses in the Stedi portal, and how to interpret the codes you're most likely to receive. ## Find claim status codes [#find-claim-status-codes] The codes on this page come from X12, the standard that HIPAA requires for healthcare transactions. Payers and Stedi send these codes in 277CA claim acknowledgments and real-time claim status responses. The codes explain the details of a claim's status, including why Stedi or the payer rejected it. They can also pinpoint problems with specific parts of the claim, such as a service line or the billing provider's information. Stedi also assigns each claim its own processing status, such as **Rejected** or **Processed**, in the Stedi portal's claims view. These Stedi statuses are different from the X12 codes on this page. They summarize where the claim is in its lifecycle, based on the 277CAs for the claim's latest submission and its 835 ERAs. To learn what each of Stedi's claim processing statuses means, visit [Claim processing status](/healthcare/claims-view#claim-processing-status) in the claims view documentation. When you review 277CAs or claim status checks directly, use the codes and guidance on this page. ### 277CA claim acknowledgments [#277ca-claim-acknowledgments] Stedi and payers send [277CA claim acknowledgments](/healthcare/receive-claim-responses) after you submit a claim to tell you whether they accepted or rejected it for processing. These statuses don't indicate whether the payer approves or denies the claim. A 277CA can include statuses at the information receiver, provider, claim, and service line levels. #### Information receiver statuses [#information-receiver-statuses] Information receiver statuses apply to the entire submission, not to a specific claim. Use these statuses to confirm that Stedi or the payer received the submission. An information receiver status can show an accepted submission even when another level shows a rejection. For example: - **Claim accepted**: When Stedi accepts a claim and forwards it to the payer, the information receiver status contains category code `A1` (Receipt) and status code `19` (Entity acknowledges receipt of claim/encounter). - **Claim rejected**: When Stedi rejects a claim because of a problem with the claim's data, the information receiver status can still contain category code `A1` and status code `20` (Accepted for processing). The rejection appears at the level with the problem, such as the claim-level or provider-level status. - **Submitter rejected**: When Stedi rejects a claim because of a problem with the submitter or receiver information, the rejection is in the information receiver status. In the [277CA report](/healthcare/api-reference/get-healthcare-reports-277) response, the following properties are in each object in the `transactions[].payers[].claimStatusTransactions[].providerClaimStatuses[].providerStatuses` array. {/* prettier-ignore-start */} | Code type | Location | | --------- | -------- | | Claim Status Category Code |
  • **JSON:** [`healthCareClaimStatusCategoryCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.providerClaimStatuses.providerStatuses.healthCareClaimStatusCategoryCode)
  • **X12 EDI:** `Loop 2200B STC01-01` (Health Care Claim Status Category Code)
| | Claim Status Code |
  • **JSON:** [`statusCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.providerClaimStatuses.providerStatuses.statusCode)
  • **X12 EDI:** `Loop 2200B STC01-02` (Status Code)
| | Entity Identifier Code |
  • **JSON:** [`entityIdentifierCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.providerClaimStatuses.providerStatuses.entityIdentifierCode)
  • **X12 EDI:** `Loop 2200B STC01-03` (Entity Identifier Code)
| {/* prettier-ignore-end */} The following example shows an information receiver status from a 277CA where Stedi rejected a claim because of a problem with the billing provider's NPI. The submitter and receiver information passed Stedi's claim edits, so the information receiver status contains category code `A1` (Receipt) and status code `20` (Accepted for processing), with no entity identifier code. The rejection is in the [provider-level status](#provider-level-statuses), shown in the next example. ```json "providerClaimStatuses": [ { "providerStatuses": [ { "healthCareClaimStatusCategoryCode": "A1", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Receipt - The claim/encounter has been received. This does not mean that the claim has been accepted for adjudication.", "statusCode": "20", "statusCodeValue": "Accepted for processing." } ], "statusInformationEffectiveDate": "20250101" } ] ``` ``` STC*A1`20*20250101*WQ*150.00~ ``` #### Provider-level statuses [#provider-level-statuses] Provider-level statuses apply to all the claims for one billing provider in the submission. Use these statuses to identify problems that affect all of a billing provider's claims, such as invalid billing provider information. A single 837 transaction can contain claims for multiple billing providers, and each provider can have its own provider-level status. - **Stedi's 277CAs**: Only include a provider-level status when Stedi rejects a claim because of a problem with the billing provider's information. - **Payers' 277CAs**: Payers may include a provider-level status for each billing provider in the submission. In the [277CA report](/healthcare/api-reference/get-healthcare-reports-277) response, the following properties are in each object in the `transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].serviceProviderClaimStatuses[].serviceProviderStatuses` array. {/* prettier-ignore-start */} | Code type | Location | | --------- | -------- | | Claim Status Category Code |
  • **JSON:** [`healthCareClaimStatusCategoryCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.serviceProviderClaimStatuses.serviceProviderStatuses.healthCareClaimStatusCategoryCode)
  • **X12 EDI:** `Loop 2200C STC01-01` (Health Care Claim Status Category Code)
| | Claim Status Code |
  • **JSON:** [`statusCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.serviceProviderClaimStatuses.serviceProviderStatuses.statusCode)
  • **X12 EDI:** `Loop 2200C STC01-02` (Status Code)
| | Entity Identifier Code |
  • **JSON:** [`entityIdentifierCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.serviceProviderClaimStatuses.serviceProviderStatuses.entityIdentifierCode)
  • **X12 EDI:** `Loop 2200C STC01-03` (Entity Identifier Code)
| {/* prettier-ignore-end */} The following example shows the provider-level status from the same 277CA as the information receiver example. It contains category code `A7` (Rejected for Invalid Information), status code `562` (Entity's National Provider Identifier (NPI)), and entity identifier code `85` (Billing Provider). The provider-level status has no effective date. ```json "serviceProviderClaimStatuses": [ { "serviceProviderStatuses": [ { "entityIdentifierCode": "85", "entityIdentifierCodeValue": "Billing Provider", "healthCareClaimStatusCategoryCode": "A7", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Rejected for Invalid Information - The claim/encounter has invalid information as specified in the Status details and has been rejected.", "statusCode": "562", "statusCodeValue": "Entity's National Provider Identifier (NPI)." } ] } ] ``` ``` STC*A7`562`85**U*150.00~ ``` #### Claim-level statuses [#claim-level-statuses] Claim-level statuses apply to the entire claim. Use these statuses to learn whether Stedi or the payer rejected the claim because of a problem with the claim's information, and why. When Stedi rejects a claim because of a problem elsewhere, such as with the billing provider or a service line, the claim-level status still contains `A1` (Receipt) and `20` (Accepted for processing), and the rejection appears at that level. A rejection includes codes for each problem and can include an explanatory message in [`statusMessage`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.informationClaimStatuses.statusMessage) (`STC12` in X12 EDI). In the [277CA report](/healthcare/api-reference/get-healthcare-reports-277) response, the following properties are in each object in the `transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.informationClaimStatuses[].informationStatuses` array. {/* prettier-ignore-start */} | Code type | Location | | --------- | -------- | | Claim Status Category Code |
  • **JSON:** [`healthCareClaimStatusCategoryCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.informationClaimStatuses.informationStatuses.healthCareClaimStatusCategoryCode)
  • **X12 EDI:** `Loop 2200D STC01-01` (Health Care Claim Status Category Code)
| | Claim Status Code |
  • **JSON:** [`statusCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.informationClaimStatuses.informationStatuses.statusCode)
  • **X12 EDI:** `Loop 2200D STC01-02` (Status Code)
| | Entity Identifier Code |
  • **JSON:** [`entityIdentifierCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.informationClaimStatuses.informationStatuses.entityIdentifierCode)
  • **X12 EDI:** `Loop 2200D STC01-03` (Entity Identifier Code)
| {/* prettier-ignore-end */} The following example shows a claim-level status from a 277CA where the payer rejected a claim because of a problem with the billing provider's NPI. It contains category code `A3` (Returned as Unprocessable Claim), status code `562` (Entity's National Provider Identifier (NPI)), entity identifier code `85` (Billing Provider), and the payer's explanatory message. ```json "informationClaimStatuses": [ { "informationStatuses": [ { "entityIdentifierCode": "85", "entityIdentifierCodeValue": "Billing Provider", "healthCareClaimStatusCategoryCode": "A3", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Returned as unprocessable claim - The claim/encounter has been rejected and has not been entered into the adjudication system.", "statusCode": "562", "statusCodeValue": "Entity's National Provider Identifier (NPI)." } ], "statusInformationActionCode": "U", "statusInformationActionCodeValue": "Reject", "statusInformationEffectiveDate": "20260702", "statusMessage": "ACK,RETURND AS UNPRCESSBLE CLM-REJECT & RETURN TO PROVIDER:ENTITY'S NATIONAL PROVIDER IDENTIFIER - NPI:BILLING PROVIDER", "totalClaimChargeAmount": "148" } ] ``` ``` STC*A3`562`85*20260702*U*148********ACK,RETURND AS UNPRCESSBLE CLM-REJECT & RETURN TO PROVIDER:ENTITY'S NATIONAL PROVIDER IDENTIFIER - NPI:BILLING PROVIDER~ ``` #### Service line statuses [#service-line-statuses] Service line statuses apply to a specific service line. Use these statuses to identify which service lines caused a rejection. Stedi's 277CAs only include them when Stedi rejects the claim because of a problem with service line information. Payers may include them in other cases. In the [277CA report](/healthcare/api-reference/get-healthcare-reports-277) response, the following properties are in each object in the `transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].serviceLines[].serviceClaimStatuses[].serviceStatuses` array. {/* prettier-ignore-start */} | Code type | Location | | --------- | -------- | | Claim Status Category Code |
  • **JSON:** [`healthCareClaimStatusCategoryCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.serviceLines.serviceClaimStatuses.serviceStatuses.healthCareClaimStatusCategoryCode)
  • **X12 EDI:** `Loop 2220D STC01-01` (Health Care Claim Status Category Code)
| | Claim Status Code |
  • **JSON:** [`statusCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.serviceLines.serviceClaimStatuses.serviceStatuses.statusCode)
  • **X12 EDI:** `Loop 2220D STC01-02` (Status Code)
| | Entity Identifier Code |
  • **JSON:** [`entityIdentifierCode`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.serviceLines.serviceClaimStatuses.serviceStatuses.entityIdentifierCode)
  • **X12 EDI:** `Loop 2220D STC01-03` (Entity Identifier Code)
| {/* prettier-ignore-end */} The following example shows a service line status from a 277CA where Stedi rejected a service line because of an invalid procedure code. It contains category code `A7` (Rejected for Invalid Information), status code `454` (Procedure code for services rendered), and an explanatory message, with no entity identifier code. ```json "serviceClaimStatuses": [ { "serviceStatuses": [ { "healthCareClaimStatusCategoryCode": "A7", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Rejected for Invalid Information - The claim/encounter has invalid information as specified in the Status details and has been rejected.", "statusCode": "454", "statusCodeValue": "Procedure code for services rendered." } ], "statusMessage": "Procedure code is invalid 99213. Correct and resubmit." } ] ``` ``` STC*A7`454**U*********Procedure code is invalid 99213. Correct and resubmit.~ ``` ### Real-time claim status checks [#real-time-claim-status-checks] A [real-time claim status check](/healthcare/check-claim-status) returns the payer's current status for a claim that's in adjudication or has been adjudicated. The response can include statuses at the claim level and at the service line level. #### Claim-level statuses [#claim-level-statuses-1] Claim-level statuses apply to the entire claim. Use these statuses to learn whether the claim is pending or finalized as paid or denied. In JSON, the following properties are in the `claims[].claimStatus` object. {/* prettier-ignore-start */} | Code type | Location | | --------- | -------- | | Claim Status Category Code |
  • **JSON:** [`statusCategoryCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.statusCategoryCode)
  • **X12 EDI:** `Loop 2200D STC01-01`, or `Loop 2200E STC01-01` for dependents, (Health Care Claim Status Category Code)
| | Claim Status Code |
  • **JSON:** [`statusCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.statusCode)
  • **X12 EDI:** `Loop 2200D STC01-02`, or `Loop 2200E STC01-02` for dependents, (Status Code)
| | Entity Identifier Code |
  • **JSON:** [`entityCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.entityCode)
  • **X12 EDI:** `Loop 2200D STC01-03`, or `Loop 2200E STC01-03` for dependents, (Entity Identifier Code)
| {/* prettier-ignore-end */} The following example shows a response where the payer couldn't find the patient in their system. It contains category code `D0` (Data Search Unsuccessful), status code `97` (Patient eligibility not found with entity), and entity identifier code `IN` (Insurer). ```json { "claims": [ { "claimStatus": { "amountPaid": "0", "claimServiceDate": "20250526-20250601", "effectiveDate": "2025-08-25", "entity": "Insurer", "entityCode": "IN", "statusCategoryCode": "D0", "statusCategoryCodeValue": "Data Search Unsuccessful - The payer is unable to return status on the requested claim(s) based on the submitted search criteria.", "statusCode": "97", "statusCodeValue": "Patient eligibility not found with entity.", "submittedAmount": "0", "trackingNumber": "123456789" } } ] } ``` ``` TRN*2*123456789~ STC*D0`97`IN*20250825**0*0~ DTP*472*RD8*20250526-20250601~ ``` #### Service line statuses [#service-line-statuses-1] Service line statuses apply to a specific service line. Use these statuses to learn the status of each service line, such as which lines the payer denied. In JSON, the following properties are in each object in the `claims[].serviceDetails[].status` array. {/* prettier-ignore-start */} | Code type | Location | | --------- | -------- | | Claim Status Category Code |
  • **JSON:** [`statusCategoryCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.serviceDetails.status.statusCategoryCode)
  • **X12 EDI:** `Loop 2220D STC01-01`, or `Loop 2220E STC01-01` for dependents, (Health Care Claim Status Category Code)
| | Claim Status Code |
  • **JSON:** [`statusCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.serviceDetails.status.statusCode)
  • **X12 EDI:** `Loop 2220D STC01-02`, or `Loop 2220E STC01-02` for dependents, (Status Code)
| | Entity Identifier Code |
  • **JSON:** [`entityCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.serviceDetails.status.entityCode)
  • **X12 EDI:** `Loop 2220D STC01-03`, or `Loop 2220E STC01-03` for dependents, (Entity Identifier Code)
| {/* prettier-ignore-end */} The following example shows a service line that the payer denied. It contains category code `F2` (Finalized/Denial) and status code `585` (Denied Charge or Non-covered Charge), with no entity identifier code. ```json { "claims": [ { "serviceDetails": [ { "service": { "amountPaid": "0", "procedureId": "90800", "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes", "serviceIdQualifierCode": "HC", "submittedAmount": "200.02", "submittedUnits": "1" }, "status": [ { "effectiveDate": "2024-11-10", "statusCategoryCode": "F2", "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.", "statusCode": "585", "statusCodeValue": "Denied Charge or Non-covered Charge." } ] } ] } ] } ``` ``` SVC*HC`90800*200.02*0****1~ STC*F2`585*20241110~ ``` #### Error statuses [#error-statuses] Error statuses explain why Stedi or the payer couldn't process the claim status check, such as when the payer is unavailable. The response's [`errorResponse.errors`](/healthcare/api-reference/post-healthcare-claim-status#response.errorResponse.errors) array contains: - **Request and provider errors**: In X12, `Loop 2200B` (Information Receiver Trace Identifier) and `Loop 2200C` (Provider of Service Trace Identifier) only contain an `STC` (Status Information) segment when there's a problem with the whole request or with the provider. Stedi puts these statuses in `errorResponse.errors`, not in `claims`. Stedi returns its own `484`, `562`, `667`, and `689` codes in `Loop 2200B`. - **Claim-level errors**: Claim-level statuses with an [`E0`–`E4` category code](#problem-with-the-claim-or-request). These include the codes Stedi returns when the claim status request is missing information the payer requires, such as the service date. The following example shows a provider status where the payer couldn't return a claim status because of a problem with the provider's name. It contains category code `D0` (Data Search Unsuccessful), status code `125` (Entity's name), and entity identifier code `1P` (Provider). ```json { "errorResponse": { "errors": [ { "code": "D0", "description": "Provider information requires correction", "field": "STC", "followupAction": "Please Correct and Resubmit", "location": "Loop 2200C", "value": "Data Search Unsuccessful - The payer is unable to return status on the requested claim(s) based on the submitted search criteria." }, { "code": "125", "description": "Provider information requires correction", "field": "STC", "followupAction": "Please Correct and Resubmit", "location": "Loop 2200C", "value": "Entity's name." }, { "code": "1P", "description": "Provider information requires correction", "field": "STC", "followupAction": "Please Correct and Resubmit", "location": "Loop 2200C", "value": "1P" } ] } } ``` ``` STC*D0`125`1P*20251223~ ``` ## Common codes and next steps [#common-codes-and-next-steps] The following sections explain how to handle the codes you're most likely to receive: - **[Category codes](#category-codes)**: Which codes mean the claim moved forward, which mean the payer needs more information, and which signal a problem. - **[Status codes](#status-codes)**: What each code means and the next steps to take. - **[Entity identifier codes](#entity-identifier-codes)**: The person, organization, or location related to the status. Each section links to the full code list. ### Category codes [#category-codes] The category code tells you the broad state of a submission, claim, or service line. For the full list, visit [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) in the X12 documentation. #### Prefixes [#prefixes] Every category code starts with a prefix of one or more letters, such as the `A` in `A7` or the `DR` in `DR01`. The prefix indicates the high-level state. 277CAs typically contain only `A` category codes. Claim status responses typically contain other prefixes, including `P` and `F` codes for pending and finalized claims, `D` codes when the payer can't find a matching claim, and `E` codes when the payer can't process the request. Codes with the same prefix can mean different things, so build your logic on the full category code. Category codes can have one of the following prefixes: {/* prettier-ignore-start */} | Prefix | Family | Meaning | | ------ | ------ | ------- | | `A` | Acknowledgment | Stedi or the payer received the claim and processed it to some stage. `A0`–`A2` and `A5` mean the claim moves forward. The other `A` codes signal a problem. | | `P` | Pending | The claim is in adjudication, or it's on hold because the payer requested more information. | | `F` | Finalized | Adjudication is complete, usually with a payment or a denial. | | `R` | Request for additional information | The payer needs more information from you. | | `DR` | Data reporting acknowledgment | The payer acknowledged a data reporting submission. | | `E` | Error | Stedi or the payer couldn't process the request. | | `D` | Data | The payer couldn't find a claim that matches the submitted data. | {/* prettier-ignore-end */} #### Claim moved forward [#claim-moved-forward] {/* prettier-ignore-start */} | Category code | Meaning | | ------------- | ------- | | `A0`–`A2`, `A5` | Stedi or the payer acknowledged the claim, and it moves forward. | | `P0`–`P2`, `P5` | The claim is in adjudication. | | `F0`–`F4` | Adjudication is complete, usually with a payment or a denial. | {/* prettier-ignore-end */} #### Payer needs more information [#payer-needs-more-information] {/* prettier-ignore-start */} | Category code | Meaning | | ------------- | ------- | | `P3` | The payer is waiting for information that it already requested from the provider. The status code identifies the requested information. | | `P4` | The payer is waiting for information that it already requested from the patient. The status code identifies the requested information. | {/* prettier-ignore-end */} #### Problem with the claim or request [#problem-with-the-claim-or-request] {/* prettier-ignore-start */} | Category code | Meaning | | ------------- | ------- | | `A3` | Stedi or the payer returned the claim as unprocessable. The claim doesn't move forward. | | `A4` | The payer has no matching claim. Typically returned for claim status checks. | | `A6` | Stedi or the payer rejected the claim for missing information. | | `A7` | Stedi or the payer rejected the claim for invalid information. | | `A8` | Stedi or the payer rejected the claim because fields in the claim conflict with each other. | | `D0` | The payer couldn't match a claim to the claim status check. | | `E0`–`E4` | Stedi or the payer couldn't process the request. Typically returned for claim status checks. `E1` and `E2` typically mean the payer's system is unavailable. `E0`, `E3`, and `E4` typically mean there's a problem with the information you sent. | {/* prettier-ignore-end */} ### Status codes [#status-codes] The following table lists common status codes and their next steps, in numerical order. Most indicate a problem, but some also appear on accepted or finalized claims. Many status codes name a field or entity, so combine them with the category code and entity identifier code to identify the problem. For the full list, visit [Claim Status Codes](https://x12.org/codes/claim-status-codes) in the X12 documentation. {/* X12 status code descriptions keep their spec wording. */} {/* vale Stedi.PassiveVoice = NO */} {/* vale Stedi.Timeless = NO */} {/* prettier-ignore-start */} | Status code | Meaning | What to do | | ----------- | ------- | ---------- | | `0` | Cannot provide further status electronically. | The payer won't return more detail electronically. Check the Electronic Remittance Advice (ERA), Explanation of Benefits (EOB), or Explanation of Payment (EOP) if you have one. Otherwise, contact the payer. | | `21` | Missing or invalid information. | Look for a second status code that identifies the missing or invalid field. Correct the claim and resubmit. | | `25` | Entity not approved. | The payer hasn't approved the entity, typically the billing provider. Check the provider's [credentialing and enrollment](/healthcare/credentialing-and-enrollment) status with the payer. | | `26` | Entity not found. | The entity, typically the billing provider, isn't on file with the payer. Check the provider's NPI, Tax Identification Number (TIN), or other identifiers with the payer. | | `31` | Subscriber and policyholder name mismatched. | The subscriber's name doesn't match the payer's records. Run an [eligibility check](/healthcare/send-eligibility-checks) to see the name the payer has on file, then resubmit with that name. | | `33` | Subscriber and subscriber ID not found. | The subscriber's information and member ID don't match. Run an [eligibility check](/healthcare/send-eligibility-checks) to see the information the payer has on file, then resubmit with that information. | | `35` | Claim/encounter not found. | The payer couldn't find a claim that matches the claim status check. Follow the [claim status troubleshooting steps](/healthcare/claim-status-troubleshooting#troubleshooting-steps). | | `88` | Entity not eligible for benefits for submitted dates of service. | The entity wasn't eligible on the dates of service. Run an [eligibility check](/healthcare/send-eligibility-checks) to confirm coverage on those dates. | | `96` | No agreement with entity. | The entity, typically the billing provider, doesn't have an agreement with the payer. Check the provider's status with the payer. | | `97` | Patient eligibility not found with entity. | The payer doesn't list the patient as eligible. Run an [eligibility check](/healthcare/send-eligibility-checks) to confirm coverage. For claim status checks, verify the [patient demographics](/healthcare/claim-status-troubleshooting#patient-demographics) in the request. | | `109` | Entity not eligible. | The entity, typically the patient, isn't listed as eligible with the payer. Run an [eligibility check](/healthcare/send-eligibility-checks) to confirm coverage. | | `116` | Claim submitted to incorrect payer. | For claim status checks, check the provider's [credentialing for claim status checks](/healthcare/claim-status-troubleshooting#provider-credentialing) with the payer. Otherwise, confirm the patient's payer with an [eligibility check](/healthcare/send-eligibility-checks). | | `125` | Entity's name. | The entity's name is missing or doesn't match the payer's records. If the entity is the patient, run an [eligibility check](/healthcare/send-eligibility-checks) to see the name the payer has on file. Then correct and resubmit. | | `158` | Entity's date of birth. | The entity's date of birth, typically the patient's, is missing or doesn't match the payer's records. If the entity is the patient, run an [eligibility check](/healthcare/send-eligibility-checks) to see the date of birth the payer has on file. Then correct and resubmit. | | `187` | Date(s) of service. | The dates of service are missing or invalid. Check the dates and resubmit. | | `454` | Procedure code for services rendered. | A procedure code is missing or invalid. Check the procedure codes and resubmit. | | `484` | Business application currently not available. | Typically returned for claim status checks. Stedi returns this code with an HTTP `429` error when your account exceeds its [concurrency limit](/healthcare/api-reference#concurrency-limits), and without one when the payer limits the request rate. A payer can also return it when its system is temporarily unavailable. In all cases, [retry](/healthcare/claim-status-troubleshooting#step-3-retry-for-unavailable-payers) later. | | `485` | More information available than can be returned in real-time mode. Narrow your current search criteria. | Too many claims matched the claim status check. [Add properties](/healthcare/claim-status-troubleshooting#step-1-add-additional-properties) such as the submitted amount, Payer Claim Control Number (PCCN), and TIN, then resubmit. | | `494` | Real-time requests not supported by the information holder, resubmit as batch request. | The payer doesn't support real-time claim status checks. Don't retry. Confirm the payer's support for claim status checks in the [Payer Network](https://www.stedi.com/healthcare/network) or the [Payers API](/healthcare/api-reference/get-payer). | | `505` | Entity's first name. | The entity's first name is missing or doesn't match the payer's records. If the entity is the patient, run an [eligibility check](/healthcare/send-eligibility-checks) to see the name the payer has on file. Then correct and resubmit. | | `562` | Entity's National Provider Identifier (NPI). | The NPI for the entity, typically the billing or rendering provider, is missing or doesn't match the payer's records. For claim status checks, Stedi also returns this code when the NPI in the request isn't a valid NPI. Check the NPI and resubmit. For claim status checks, check the [billing provider NPI](/healthcare/claim-status-troubleshooting#billing-provider-npi). | | `667` | Real-time requests not supported by the information holder, do not resubmit. | Don't retry. Payers return this code when they don't support real-time claim status checks, and Stedi returns it when it can't route the request to the payer. Confirm the payer's support for claim status checks in the [Payer Network](https://www.stedi.com/healthcare/network) or the [Payers API](/healthcare/api-reference/get-payer). | | `689` | Entity was unable to respond within the expected time frame. | The payer timed out. Typically returned for claim status checks. [Retry](/healthcare/claim-status-troubleshooting#step-3-retry-for-unavailable-payers) the check. | {/* prettier-ignore-end */} {/* vale Stedi.PassiveVoice = YES */} {/* vale Stedi.Timeless = YES */} ### Entity identifier codes [#entity-identifier-codes] The entity identifier code identifies the person, organization, or location related to the status. For example, when category code `A7` and status code `562` come with entity identifier code `85`, the NPI problem is with the billing provider. {/* prettier-ignore-start */} | Code | Entity | | ---- | ------ | | `1P` | Provider | | `77` | Service location | | `82` | Rendering provider | | `85` | Billing provider | | `DN` | Referring provider | | `IL` | Insured or subscriber | | `PR` | Payer | | `QC` | Patient | {/* prettier-ignore-end */} For the full list, visit [Entity identifier](/healthcare/claims-code-lists#entity-identifier) in the claims code lists. ## Build workflow logic [#build-workflow-logic] Use the category code, status code, and entity identifier code together to understand a claim's status. For example, category code `A7`, status code `562`, and entity identifier code `85` together mean a rejection for a problem with the billing provider's NPI. The same status code can appear under different category codes, so we recommend building logic on the category code and status code together. For example, status code `21` (Missing or invalid information) can come with category code `A6` (Rejected for Missing Information) or `A7` (Rejected for Invalid Information). Each transaction includes several types of statuses. Base your logic on the statuses for each claim: - **Real-time claim status checks**: Use the [claim-level status](#claim-level-statuses) and, when the response includes them, the [service line statuses](#service-line-statuses). - **277CA claim acknowledgments**: Check the statuses at every level. A rejection at any level means Stedi or the payer rejected the claim, even when the claim-level status contains `A1` and `20`. In Stedi's 277CAs, the rejection appears at the level with the problem: the [information receiver status](#information-receiver-statuses) for submitter information, the [provider-level status](#provider-level-statuses) for billing provider information, the [claim-level status](#claim-level-statuses-1) for claim information, or the [service line status](#service-line-statuses-1) for a specific service line. Start with the category code to determine the claim's status, then use the [status code](#status-codes) and [entity identifier code](#entity-identifier-codes) to decide on next steps. {/* prettier-ignore-start */} | Claim status | Category codes | Next steps | | ------------ | -------------- | ---------- | | Acknowledged | [`A0`–`A2`, `A5`](#claim-moved-forward) | The claim moves forward. Wait for the payer's next 277CA or check its status later. | | Pending | [`P0`–`P2`, `P5`](#claim-moved-forward) | The claim is in adjudication. Check again later. | | Waiting for information | [`P3`, `P4`](#payer-needs-more-information) | Use the status code to identify the information the payer requested. | | Finalized | [`F0`–`F4`](#claim-moved-forward) | Adjudication is complete, usually with a payment or a denial. Stop checking. The payer typically sends an [835 ERA](/healthcare/receive-claim-responses) or EOB that explains the result. | | Request for additional information | [`R`](#prefixes) codes | Send the payer the requested documentation. | | Error | [`E0`–`E4`](#problem-with-the-claim-or-request) | For `E1` and `E2`, [retry](/healthcare/claim-status-troubleshooting#step-3-retry-for-unavailable-payers). For `E0`, `E3`, and `E4`, correct the request before resending. Some payers send `E1` when the request is incorrect, so check the request if retries keep failing. | | Rejected | [`A3`, `A6`, `A7`, `A8`](#problem-with-the-claim-or-request) | Use the status code and entity identifier code to find the field to correct, then correct the claim and resubmit it. | | Not found | [`A4`, `D0`](#problem-with-the-claim-or-request) | The payer couldn't match a claim to the claim status check. Follow the [claim status troubleshooting steps](/healthcare/claim-status-troubleshooting#troubleshooting-steps). | {/* prettier-ignore-end */} # Troubleshoot claim status checks Source: https://www.stedi.com/docs/healthcare/claim-status-troubleshooting Troubleshoot claim status checks that don't return matching claim information. Get next steps for handling the claim. This page explains how to troubleshoot [claim status checks](/healthcare/check-claim-status) that don't return matching claim information. To learn what the codes in a claim status response mean, visit [Interpret claim status](/healthcare/claim-status-codes). ## Troubleshooting steps [#troubleshooting-steps] We recommend trying the following troubleshooting steps in order, regardless of the error codes you receive. Payers often send non-specific or even misleading error codes in claim status responses. While error codes sometimes provide insight into the issue, we recommend trying all of these common troubleshooting steps if you're not getting successful results. For example, [Claim Status Category Codes](/healthcare/claim-status-codes#category-codes) like `E1` (Response not possible - System Status) can indicate that the payer's systems are temporarily down, but some payers also send these codes when your request information was incorrect. ### Step 1: Add additional properties [#step-1-add-additional-properties] Regardless of the status codes in the 277 response, we recommend immediately retrying with these properties added to the request one by one, in the following order. Through experience, we've found including this information reliably improves hit rates for a large number of payers: 1. **Submitted amount**: The total charge amount for the entire claim - the sum of all service lines. You can add the submitted amount in: - **JSON:** [`encounter.submittedAmount`](/healthcare/api-reference/post-healthcare-claim-status#body.encounter.submittedAmount) - **X12:** `Loop 2200D AMT02` (Total Claim Charge Amount) 2. **Payer Claim Control Number (PCCN)**: The unique identifier the payer assigns to claims in their adjudication system. You can find the PCCN in 277CA claim acknowledgments from the payer once the claim has entered their adjudication system: - **JSON:** [`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.tradingPartnerClaimNumber`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.tradingPartnerClaimNumber) - **X12 EDI:** `Loop 2200D REF02`, where `REF01` = `1K` (Payor's Claim Number) - **Stedi portal:** Go to the [claims view](https://portal.stedi.com/app/healthcare/claims), click the claim to open its timeline, and click **See more detail** on the 277CA. The PCCN is listed under **Payer claim control number** if available. You can add the PCCN to your claim status request in: - **JSON:** [`encounter.tradingPartnerClaimNumber`](/healthcare/api-reference/post-healthcare-claim-status#body.encounter.tradingPartnerClaimNumber) - **X12:** `Loop 2200D REF02` (Payer Claim Control Number) when `REF01` = `1K` (Payor's Claim Number) 3. **Tax ID**: The billing provider's Tax Identification Number (TIN). Some payers need this identifier instead of the NPI to find the right claim. You can add the tax ID in: - **JSON:** [`providers.taxId`](/healthcare/api-reference/post-healthcare-claim-status#body.providers.taxId) - **X12:** `Loop 2100C NM109` (Provider Identifier) when `NM108` is set to `FI` (Federal Taxpayer's Identification Number) ### Step 2: Check for common errors [#step-2-check-for-common-errors] Many failed claim status requests are due to the following errors. Sometimes, the [status codes](/healthcare/claim-status-codes) can indicate the cause and help you focus your troubleshooting efforts. If not, we recommend checking all the following: #### Payer-specific requirements [#payer-specific-requirements] Many payers document additional requirements beyond the X12 HIPAA specification. Check the payer's 276/277 companion guide, and look for information about: 1. **Provider type:** We recommend starting with only the billing provider's information in claim status checks. However, some payers may require information about the service provider(s) instead of or in addition to the billing provider. Check whether `Loop 2100C` (Provider Name) is listed as required, optional, or disallowed and whether there are specific requirements about the type of provider. You can adjust this information in: - **JSON:** [`providers` array](/healthcare/api-reference/post-healthcare-claim-status#body.providers) - **X12 EDI** `Loop 2100C` (Provider Name) 2. **Provider identifier:** Some payers may require a different identifier than the NPI, such as the provider's tax ID. Check whether the payer has specific notes about what to use for `Loop 2100C NM109` (Provider Identifier). You can adjust this information in: - **JSON:** [`providers` array](/healthcare/api-reference/post-healthcare-claim-status#body.providers) - **X12 EDI** `Loop 2100C NM109` (Provider Identifier) 3. **Member ID format:** Some payers may require that you enter the subscriber's member ID with a specific prefix or digit count. Check whether the payer has specific notes about `Loop 2100D NM109` (Subscriber Identifier). You can adjust this information in: - **JSON:** [`subscriber.memberId`](/healthcare/api-reference/post-healthcare-claim-status#body.subscriber.memberId) - **X12 EDI:** `Loop 2100D NM109` (Subscriber Identifier) 4. **Demographics** Some payers require additional demographic information about the subscriber or dependent. Check whether the payer has specific notes about `Loop 2000D` (Subscriber) or `Loop 2000E` (Dependent). You can adjust this information in: - **JSON**: [`subscriber`](/healthcare/api-reference/post-healthcare-claim-status#body.subscriber) or [`dependent`](/healthcare/api-reference/post-healthcare-claim-status#body.dependent) objects - **X12 EDI:** `Loop 2000D` (Subscriber) or `Loop 2000E` (Dependent) 5. **Application or location identifier:** Some payers use this value to route your request to the correct claims adjudication system, and may not find the claim without it. This is common for institutional claims. Check whether the payer has specific notes about `Loop 2200D REF02` when `REF01` = `LU` (Application or Location System Identifier), including which values it accepts. You can add this information in: - **JSON:** [`encounter.locationIdentifier`](/healthcare/api-reference/post-healthcare-claim-status#body.encounter.locationIdentifier) - **X12 EDI:** `Loop 2200D REF02` (Application or Location System Identifier) when `REF01` = `LU` If you need help finding a payer's companion guide, contact [Stedi support](https://www.stedi.com/contact). #### Date of service range [#date-of-service-range] Some payers store service dates differently than what you submitted. Try expanding your date of service range to plus or minus 14 days from the original claim's service date. You can adjust the date range in: - **JSON:** [`encounter.beginningDateOfService`](/healthcare/api-reference/post-healthcare-claim-status#body.encounter.beginningDateOfService) and [`encounter.endDateOfService`](/healthcare/api-reference/post-healthcare-claim-status#body.encounter.endDateOfService) - **X12:** `Loop 2200D DTP` (Claim Service Date) #### Billing provider NPI [#billing-provider-npi] The billing provider NPI must match the one submitted in the claim. If your group or practice uses a group NPI for billing, try resubmitting with that organizational NPI instead. If the billing provider NPI fails, try substituting the rendering provider's NPI as the billing NPI. Some payers index claims by the rendering provider rather than the billing organization. You can adjust the NPI in: - **JSON:** [`providers.npi`](/healthcare/api-reference/post-healthcare-claim-status#body.providers.npi) - **X12:** `Loop 2100C NM109` (Provider Identifier) Example showing how to set the rendering provider's NPI as the billing NPI: ```json { "providers": [ { "providerType": "BillingProvider", "npi": "1234567890", "organizationName": "Rendering Provider Name" } ] } ``` #### Patient demographics [#patient-demographics] Administrative entities that handle claim submission sometimes discover changes to the patient's insurance information after services were rendered. For example, they may: - discover a coordination of benefits (COB) scenario. As a result, they may submit the final claim to a different payer than the one originally listed as the patient's insurance provider. - update the patient's name, member ID, or other identifying information. As a result, you may be making claim status requests with incorrect patient data. Try running a [real-time eligibility check](/healthcare/send-eligibility-checks) with the patient's information. If the check is successful, it confirms that your patient data is correct. ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3 \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "tradingPartnerServiceId": "ABDCE", "encounter": { "serviceTypeCodes": ["MH"] }, "provider": { "organizationName": "ACME Health Services", "npi": "1999999984" }, "subscriber": { "dateOfBirth": "19000101", "firstName": "Jane", "lastName": "Doe", "memberId": "1234567890" } }' ``` If the payer returns [`AAA` errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors), you can often use them to identify issues with the patient's data. For example: - An `AAA` error `71` (Patient Birth Date Does Not Match That for the Patient on the Database) indicates that the patient's birthdate may be the issue. - An `AAA` error `73` (Invalid/Missing Subscriber/Insured Name) may indicate that the patient's first or last name are spelled incorrectly. - An `AAA` error `75` (Subscriber/Insured Not Found) indicates that the payer couldn't find the patient in their system. This may indicate that the patient's name, member ID, or other demographics are incorrect or that they're insured with a different payer. The following example shows an eligibility check response with an `AAA` error `75`, indicating the payer couldn't find the subscriber in their system. In this case, you'd want to check the patient's demographic details to ensure they're correct. You may also want to reach out to your billing department to confirm whether the final claim was submitted to a different payer. ```json { "subscriber": { "memberId": "123456789", "firstName": "JANE", "lastName": "DOE", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "dateOfBirth": "19001103", "aaaErrors": [ { "field": "AAA", "code": "75", "description": "Subscriber/Insured Not Found", "followupAction": "Please Correct and Resubmit", "location": "Loop 2100C", "possibleResolutions": "- Subscriber was not found." } ] } } ``` #### BCBS / BlueCard routing [#bcbs--bluecard-routing] For BCBS members, the claim may have been adjudicated by the member's **home plan** rather than the local plan where services were rendered. To identify the correct payer, run a [real-time eligibility check](/healthcare/send-eligibility-checks) with the patient's information. ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3 \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "tradingPartnerServiceId": "ABDCE", "encounter": { "serviceTypeCodes": ["MH"] }, "provider": { "organizationName": "ACME Health Services", "npi": "1999999984" }, "subscriber": { "dateOfBirth": "19000101", "firstName": "Jane", "lastName": "Doe", "memberId": "1234567890" } }' ``` Stedi enriches the eligibility response with information about the patient's home plan when the eligibility check includes the member's first name, last name, birthdate, and full member ID (including the 3-character BCBS alpha prefix). Visit [BCBS home plan](/healthcare/eligibility-plan-details#bcbs-home-plan) in our eligibility documentation for details about how to retrieve this information from JSON and X12 EDI responses. Once you've identified the correct home plan, resubmit the claim status check using that payer's ID instead. #### Provider credentialing [#provider-credentialing] Some payers require the provider NPI to be [credentialed](/healthcare/credentialing-and-enrollment#credentialing) or [enrolled](/healthcare/credentialing-and-enrollment#payer-enrollment) specifically for real-time claim status checks, separate from claim submission enrollment. If you receive codes indicating that the request was sent to the wrong payer but you're certain the payer ID you used is correct, the provider may not be credentialed properly with the payer. For example, the following combination of codes may indicate a credentialing issue: - [Claim Status Category Code](/healthcare/claim-status-codes#category-codes) `E0` (Response not possible - error on submitted request data) - [Claim Status Code](/healthcare/claim-status-codes#status-codes) `116` (Claim submitted to incorrect payer.) Try the same request with a different NPI that you know is properly credentialed with that payer. If you get a different response, such as category code `A4` with status code `35` (Claim/Encounter Not Found), the original NPI is likely the issue. #### Unsupported request properties [#unsupported-request-properties] The [Real-Time Claim Status (276/277) JSON](/healthcare/api-reference/post-healthcare-claim-status) endpoint doesn't reject a request that contains property names it doesn't recognize. Stedi ignores those properties, runs the claim status check with the rest of the request, and returns a warning listing what it ignored. If you're not getting the results you expected, review the `warnings` array. Stedi never sends an ignored property to the payer, so a check can succeed while missing information you meant to include, such as a property you added in [Step 1](#step-1-add-additional-properties). The warning uses the code `request::unsupported_field_names`, and Stedi lists every unsupported property in a single warning. Stedi identifies each property with a [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) path, using `/` as a separator and an index number for array entries. For example, `/serviceLinesInformation/0/procedureCodes`. Check the property names against the [API reference](/healthcare/api-reference/post-healthcare-claim-status) and resubmit. In the following example, the request used `encounter.submittedAmounts` instead of `encounter.submittedAmount`. Stedi ignored the property, so it ran the check without the submitted amount. ```json { "warnings": [ { "code": "request::unsupported_field_names", "description": "The following request field(s) are not supported: `/encounter/submittedAmounts`. You may want to check these field names against Stedi's API Reference and resubmit." } ] } ``` ### Step 3: Retry for unavailable payers [#step-3-retry-for-unavailable-payers] If the payer continues returning codes indicating that they're unavailable, such as [category codes](/healthcare/claim-status-codes#category-codes) `E1` and `E2` or [status codes](/healthcare/claim-status-codes#status-codes) `484` and `689`, we recommend implementing the following automated retry strategy: - Wait 1 minute to perform the first retry. - Exponentially increase the wait time between subsequent retries to up to 30 minutes. - Retry for at least 8 hours, though the retry window should be based on your business workflows. Don't retry when you receive status code `494` or `667`. Retries won't succeed. Instead: - **Confirm payer support**: Both codes can mean the payer doesn't support real-time claim status checks. Check the payer's support in the [Payer Network](https://www.stedi.com/healthcare/network) or the [Payers API](/healthcare/api-reference/get-payer). - **Check routing**: Stedi also returns `667` when it can't route the request to the payer. If the payer supports real-time claim status checks, [contact support](#step-4-contact-support). ### Step 4: Contact support [#step-4-contact-support] If you've tried all these steps and still receive errors for claim status checks with information you know is correct, contact [Stedi support](https://www.stedi.com/contact). We can help figure out the next steps. # Claims code lists Source: https://www.stedi.com/docs/healthcare/claims-code-lists Code lists for claims, 277CA claim acknowledgments, 835 ERAs, and real-time claim status checks. {/* X12 code descriptions on this page keep their spec semicolons. */} {/* vale Stedi.Semicolons = NO */} This page contains code lists that are too long to represent clearly within the [API reference documentation](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-claims). You can find code lists for: - [837 claims](#837-claim-code-lists) (professional, dental, and institutional) - [277CA claim acknowledgments](#277ca-code-lists) - [835 Electronic Remittance Advice (ERAs)](#era-code-lists) - [276/277 claim status checks](#claim-status-code-lists) ## 837 claim code lists [#837-claim-code-lists] You may need to reference the following code lists when submitting professional, dental, and institutional claims. ### Ambulance Certification Condition Codes [#ambulance-certification-condition-codes] **Transaction type:** 837 claims Used in the professional claims [`claimInformation.ambulanceCertification.conditionCodes`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.ambulanceCertification.conditionCodes) property. - `01` - Patient was admitted to a hospital - `04` - Patient was moved by stretcher - `05` - Patient was unconscious or in shock - `06` - Patient was transported in an emergency situation - `07` - Patient had to be physically restrained - `08` - Patient had visible hemorrhaging - `09` - Ambulance service was medically necessary - `12` - Patient is confined to a bed or chair; use to indicate that the patient was bedridden during transport ### Ambulance Transport Reason Codes [#ambulance-transport-reason-codes] **Transaction type:** 837 claims Used in the professional claims [`claimInformation.ambulanceTransportInformation.ambulanceTransportReasonCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.ambulanceTransportInformation.ambulanceTransportReasonCode) property. - `A` - Patient was transported to nearest facility for care of symptoms, complaints, or both - `B` - Patient was transported for the benefit of a preferred physician - `C` - Patient was transported for the nearness of family members - `D` - Patient was transported for the care of a specialist or for availability of specialized equipment - `E` - Patient Transferred to Rehabilitation Facility ### Attachment Report Type Codes [#attachment-report-type-codes] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.serviceLines[].serviceLineSupplementalInformation[].attachmentReportTypeCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformation.attachmentReportTypeCode) property - Institutional claims [`claimInformation.claimSupplementalInformation.reportInformation.attachmentReportTypeCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimSupplementalInformation.reportInformation.attachmentReportTypeCode) property - Dental claims [`claimInformation.claimSupplementalInformation.reportInformation.attachmentReportTypeCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimSupplementalInformation.reportInformation.attachmentReportTypeCode) property. A subset of the codes are supported for [dental claims](#dental). - `03` - Report Justifying Treatment Beyond Utilization Guidelines - `04` - Drugs Administered - `05` - Treatment Diagnosis - `06` - Initial Assessment - `07` - Functional Goals - `08` - Plan of Treatment - `09` - Progress Report - `10` - Continued Treatment - `11` - Chemical Analysis - `13` - Certified Test Report - `15` - Justification for Admission - `21` - Recovery Plan - `A3` - Allergies/Sensitivities Document - `A4` - Autopsy Report - `AM` - Ambulance Certification - `AS` - Admission Summary - `B2` - Prescription - `B3` - Physician Order - `B4` - Referral Form - `BR` - Benchmark Testing Results - `BS` - Baseline - `BT` - Blanket Test Results - `CB` - Chiropractic Justification - `CK` - Consent Form(s) - `CT` - Certification - `D2` - Drug Profile Document - `DA` - Dental Models - `DB` - Durable Medical Equipment Prescription - `DG` - Diagnostic Report - `DJ` - Discharge Monitoring Report - `DS` - Discharge Summary - `EB` - Explanation of Benefits (Coordination of Benefits or Medicare Secondary Payor) - `HC` - Health Certificate - `HR` - Health Clinic Records - `I5` - Immunization Record - `IR` - State School Immunization Records - `LA` - Laboratory Results - `M1` - Medical Record Attachment - `MT` - Models - `NN` - Nursing Notes - `OB` - Operative Note - `OC` - Oxygen Content Averaging Report - `OD` - Orders and Treatments Document - `OE` - Objective Physical Examination (including vital signs) Document - `OX` - Oxygen Therapy Certification - `OZ` - Support Data for Claim - `P4` - Pathology Report - `P5` - Patient Medical History Document - `PE` - Parenteral or Enteral Certification - `PN` - Physical Therapy Notes - `PO` - Prosthetics or Orthotic Certification - `PQ` - Paramedical Results - `PY` - Physician's Report - `PZ` - Physical Therapy Certification - `RB` - Radiology Films - `RR` - Radiology Reports - `RT` - Report of Tests and Analysis Report - `RX` - Renewable Oxygen Content Averaging Report - `SG` - Symptoms Document - `V5` - Death Notification - `XP` - Photographs #### Dental [#dental] For dental claims, you can use only the following attachment report type codes: - `B4` - Referral Form - `DA` - Dental Models - `DG` - Diagnostic Report - `EB` - Explanation of Benefits (Coordination of Benefits or Medicare Secondary Payor) - `OZ` - Support Data for Claim - `P6` - Periodontal Charts - `RB` - Radiology Films - `RR` - Radiology Reports ### Attachment Transmission Codes [#attachment-transmission-codes] **Transaction type:** 837 claims Used in the professional claims [`claimInformation.serviceLines[].durableMedicalEquipmentCertificateOfMedicalNecessity.attachmentTransmissionCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.durableMedicalEquipmentCertificateOfMedicalNecessity.attachmentTransmissionCode) property. - `AB` - Previously Submitted to Payer - `AD` - Certification Included in this Claim - `AF` - Narrative Segment Included in this Claim - `AG` - No Documentation is Required - `NS` - Not Specified; Paperwork is available on request at the provider's site. This means that the paperwork is not being sent with the claim at this time. Instead, it is available to the payer (or appropriate entity) at their request. ### Claim Filing Indicator Codes [#claim-filing-indicator-codes] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional Claims [`claimInformation.claimFilingCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimFilingCode) and [`claimInformation.otherSubscriberInformation[].claimFilingIndicatorCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.otherSubscriberInformation.claimFilingIndicatorCode) properties. - Dental Claims [`claimInformation.claimFilingCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimFilingCode) and [`claimInformation.otherSubscriberInformation[].claimFilingIndicatorCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.otherSubscriberInformation.claimFilingIndicatorCode) properties. - Institutional Claims [`claimInformation.claimFilingCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimFilingCode) and [`claimInformation.otherSubscriberInformation.claimFilingIndicatorCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.otherSubscriberInformation.claimFilingIndicatorCode) properties. - `11` - Other Non-Federal Programs - `12` - Preferred Provider Organization (PPO) - `13` - Point of Service (POS) - `14` - Exclusive Provider Organization (EPO) - `15` - Indemnity Insurance - `16` - Health Maintenance Organization (HMO) Medicare Risk - `17` - Dental Maintenance Organization - `AM` - Automobile Medical - `BL` - Blue Cross/Blue Shield - `CH` - Champus - `CI` - Commercial Insurance Co. - `DS` - Disability - `FI` - Federal Employees Program - `HM` - Health Maintenance Organization - `LM` - Liability Medical - `MA` - Medicare Part A - `MB` - Medicare Part B - `MC` - Medicaid - `OF` - Other Federal Program; Use when submitting Medicare Part D claims - `TV` - Title V - `VA` - Veterans Affairs Plan - `WC` - Workers' Compensation Health Claim - `ZZ` - Mutually Defined; Use when Type of Insurance is not known #### Choosing the right code [#choosing-the-right-code] For some payers, the value for `claimInformation.claimFilingCode` is relatively obvious. For example, if you're submitting a claim to Medicaid California Medi-Cal, then it makes sense to default to populating `claimInformation.claimFilingCode` with `MC` (Medicaid). For other payers, the correct code may be more difficult to determine. For example, if submitting a claim to the Centers for Medicare and Medicaid Services (CMS), you may need to submit `MA` (Medicare Part A) or `MB` (Medicare Part B). In these cases, you can run a [real-time eligibility check](/healthcare/send-eligibility-checks) and evaluate whether the response contains any information that clearly suggests which claim filing code to use. For example, if the eligibility response contains `"benefitsInformation.insuranceType" : "Commercial"` then you should submit `"claimInformation.claimFilingCode": "CI"`. One thing to note is that you may not always get back a `benefitsInformation.insuranceType` value in an eligibility response because payers are not required to send it. In these cases, you can submit `ZZ` as the `claimFilingCode` because the vast majority of payers accept that value. Once you use this workflow to determine a best guess for the Claim Filing Indicator Code for each payer, you can try sending a claim. - **Rejection:** The rejection message clearly states that the claim filing indicator code was incorrect, and should state which one to send instead. - **Acceptance:** The claim filing indicator code you submitted was correct. ### Claim Pricing (Institutional Claims) [#claim-pricing-institutional-claims] For properties in the Institutional Claims `claimInformation.claimPricingInformation` object and the `claimInformation.serviceLines[].lineAdjudicationInformation` object. #### Exception Codes [#exception-codes] **Transaction type:** 837 claims Used in the institutional claims [`claimInformation.claimPricingInformation.exceptionCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimPricingInformation.exceptionCode) property. - `1` - Non-Network Professional Provider in Network Hospital - `2` - Emergency Care - `3` - Services or Specialist not in Network - `4` - Out-of-Service Area - `5` - State Mandates - `6` - Other #### Policy Compliance Codes [#policy-compliance-codes] **Transaction type:** 837 claims Used in the institutional claims [`claimInformation.claimPricingInformation.policyComplianceCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimPricingInformation.policyComplianceCode) and [`claimInformation.serviceLines[].linePricingInformation.policyComplianceCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.linePricingInformation.policyComplianceCode) properties. - `1` - Procedure Followed (Compliance) - `2` - Not Followed - Call Not Made (Non-Compliance Call Not Made) - `3` - Not Medically Necessary (Non-Compliance Non-Medically Necessary) - `4` - Not Followed Other (Non-Compliance Other) - `5` - Emergency Admit to Non-Network Hospital #### Pricing Methodology Codes [#pricing-methodology-codes] **Transaction type:** 837 claims Used in the institutional claims [`claimInformation.claimPricingInformation.pricingMethodologyCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimPricingInformation.pricingMethodologyCode) and [`claimInformation.serviceLines[].lineRepricingInformation.pricingMethodologyCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.lineRepricingInformation.pricingMethodologyCode) properties. - `00` - Zero Pricing (Not Covered Under Contract) - `01` - Priced as Billed at 100% - `02` - Priced at the Standard Fee Schedule - `03` - Priced at a Contractual Percentage - `04` - Bundled Pricing - `05` - Peer Review Pricing - `06` - Per Diem Pricing - `07` - Flat Rate Pricing - `08` - Combination Pricing - `09` - Maternity Pricing - `10` - Other Pricing - `11` - Lower of Cost - `12` - Ratio of Cost - `13` - Cost Reimbursed - `14` - Adjustment Pricing #### Product or Service ID Qualifier Codes [#product-or-service-id-qualifier-codes] **Transaction type:** 837 claims Used in the institutional claims properties: - [`claimInformation.claimPricingInformation.productOrServiceIDQualifier`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimPricingInformation.productOrServiceIDQualifier) - [`claimInformation.serviceLines[].lineAdjudicationInformation.productOrServiceIDQualifier`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.lineAdjudicationInformation.productOrServiceIDQualifier) - [`claimInformation.serviceLines[].institutionalService.procedureIdentifier`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.institutionalService.procedureIdentifier) - [`claimInformation.serviceLines[].lineRepricingInformation.productOrServiceIDQualifier`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.lineRepricingInformation.productOrServiceIDQualifier) - `ER` - Jurisdiction Specific Procedure and Supply Codes; Not allowed for use under HIPAA. You can only use this code if a new rule names the Jurisdiction Specific Procedure and Supply Codes as an allowable code set under HIPAA, OR the Secretary grants an exception to use the code set as a pilot project as allowed under the law, OR for claims not covered by HIPAA. - `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes; Because the AMA's CPT codes are also level 1 HCPCS codes, they are reported under HC. - `HP` - Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code - `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code; Not allowed for use under HIPAA. You can only use this qualifier if a new rule names the Home Infusion EDI Coalition (HIEC) Product/Service Codes as an allowable code set under HIPAA, OR the Secretary grants an exception to use the code set as a pilot project as allowed under the law, OR for claims not covered by HIPAA. - `WK` - Advanced Billing Concepts (ABC) Codes; Approved by the Secretary of HHS as a pilot project allowed under HIPAA law. Only parties registered in the pilot project and their trading partners can use this qualifier in transactions covered by HIPAA. Otherwise, you can only use this code if a new rule names the Complementary, Alternative, or Holistic Procedure Codes as an allowable code set under HIPAA OR for claims not covered by HIPAA. #### Reject Reason Codes [#reject-reason-codes] **Transaction type:** 837 claims Used in the institutional claims [`claimInformation.claimPricingInformation.rejectReasonCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimPricingInformation.rejectReasonCode) and [`claimInformation.serviceLines[].lineRepricingInformation.rejectReasonCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.lineRepricingInformation.rejectReasonCode) properties. - `T1` - Cannot Identify Provider as TPO (Third Party Organization) Participant - `T2` - Cannot Identify Payer as TPO (Third Party Organization) Participant - `T3` - Cannot Identify Insured as TPO (Third Party Organization) Participant - `T4` - Payer Name or Identifier Missing - `T5` - Certification Information Missing - `T6` - Claim does not contain enough information for re-pricing ### Composite Medical Procedure - Product or Service ID Qualifier Codes [#composite-medical-procedure---product-or-service-id-qualifier-codes] **Transaction type:** 837 claims Used in the professional claims [`claimInformation.serviceLines[].lineAdjudicationInformation.serviceIdQualifier`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.lineAdjudicationInformation.serviceIdQualifier) and [`claimInformation.serviceLines[].professionalService.procedureIdentifier`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.professionalService.procedureIdentifier) properties. - `ER` - Jurisdiction Specific Procedure and Supply Codes; Not allowed for use under HIPAA. You can only use this code if a new rule names the Jurisdiction Specific Procedure and Supply Codes as an allowable code set under HIPAA, OR the Secretary grants an exception to use the code set as a pilot project as allowed under the law, OR for claims not covered by HIPAA. - `HC` - Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes; Because the AMA's CPT codes are also level 1 HCPCS codes, they are reported under HC. - `IV` - Home Infusion EDI Coalition (HIEC) Product/Service Code; Not allowed for use under HIPAA. You can only use this qualifier if a new rule names the Home Infusion EDI Coalition (HIEC) Product/Service Codes as an allowable code set under HIPAA, OR the Secretary grants an exception to use the code set as a pilot project as allowed under the law, OR for claims not covered by HIPAA. - `WK` - Advanced Billing Concepts (ABC) Codes; Approved by the Secretary of HHS as a pilot project allowed under HIPAA law. Only parties registered in the pilot project and their trading partners can use this qualifier in transactions covered by HIPAA. Otherwise, you can only use this code if a new rule names the Complementary, Alternative, or Holistic Procedure Codes as an allowable code set under HIPAA OR for claims not covered by HIPAA. ### Delay Reason Codes [#delay-reason-codes] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.delayReasonCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.delayReasonCode) property. - Institutional claims [`claimInformation.delayReasonCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.delayReasonCode) property. - Dental claims [`claimInformation.delayReasonCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.delayReasonCode) property. - `1` - Proof of Eligibility Unknown or Unavailable - `2` - Litigation - `3` - Authorization Delays - `4` - Delay in Certifying Provider - `5` - Delay in Supplying Billing Forms - `6` - Delay in Delivery of Custom-made Appliances - `7` - Third Party Processing Delay - `8` - Delay in Eligibility Determination - `9` - Original Claim Rejected or Denied Due to a Reason Unrelated to the Billing Limitation Rules - `10` - Administration Delay in the Prior Approval Process - `11` - Other - `15` - Natural Disaster ### Drug Identification Product or Service ID Qualifier Codes [#drug-identification-product-or-service-id-qualifier-codes] **Transaction type:** 837 claims Used in the professional claims [`claimInformation.serviceLines[].drugIdentification.serviceIdQualifier`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.drugIdentification.serviceIdQualifier) property. - `EN` - EAN/UCC - 13 - `EO` - EAN/UCC - 8 - `HI` - HIBC (Health Care Industry Bar Code) Supplier Labeling Standard Primary Data Message - `N4` - National Drug Code in 5-4-2 Format - `ON` - Customer Order Number - `UK` - GTIN 14-digit Data Structure - `UP` - UCC - 12 ### Individual Relationship Codes [#individual-relationship-codes] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.otherSubscriberInformation[].individualRelationshipCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.otherSubscriberInformation.individualRelationshipCode) property. - Dental claims [`claimInformation.otherSubscriberInformation[].individualRelationshipCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.otherSubscriberInformation.individualRelationshipCode) property. - Institutional claims [`claimInformation.otherSubscriberInformation.individualRelationshipCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.otherSubscriberInformation.individualRelationshipCode) property. - `01` - Spouse - `18` - Self - `19` - Child - `20` - Employee - `21` - Unknown - `39` - Organ Donor - `40` - Cadaver Donor - `53` - Life Partner - `G8` - Other Relationship ### Insurance Type Codes [#insurance-type-codes] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`subscriber.insuranceTypeCode`](/healthcare/api-reference/post-healthcare-claims#body.subscriber.insuranceTypeCode) and [`claimInformation.otherSubscriberInformation[].insuranceTypeCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.otherSubscriberInformation.insuranceTypeCode) properties. - Dental claims [`subscriber.insuranceTypeCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.subscriber.insuranceTypeCode) and [`claimInformation.otherSubscriberInformation[].insuranceTypeCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.otherSubscriberInformation.insuranceTypeCode) properties. - `12` - Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan - `13` - Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan - `14` - Medicare Secondary, No-fault Insurance including Auto is Primary - `15` - Medicare Secondary Worker's Compensation - `16` - Medicare Secondary Public Health Service (PHS)or Other Federal Agency - `41` - Medicare Secondary Black Lung - `42` - Medicare Secondary Veteran's Administration - `43` - Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP) - `47` - Medicare Secondary, Other Liability Insurance is Primary ### Payment Responsibility Sequence Number Codes [#payment-responsibility-sequence-number-codes] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`subscriber.paymentResponsibilityLevelCode`](/healthcare/api-reference/post-healthcare-claims#body.subscriber.paymentResponsibilityLevelCode) and [`claimInformation.otherSubscriberInformation[].paymentResponsibilityLevelCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.otherSubscriberInformation.paymentResponsibilityLevelCode) properties. - Dental claims [`subscriber.paymentResponsibilityLevelCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.subscriber.paymentResponsibilityLevelCode) and [`claimInformation.otherSubscriberInformation[].paymentResponsibilityLevelCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.otherSubscriberInformation.paymentResponsibilityLevelCode) properties. - Institutional claims [`subscriber.paymentResponsibilityLevelCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.subscriber.paymentResponsibilityLevelCode) and [`claimInformation.otherSubscriberInformation.paymentResponsibilityLevelCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.otherSubscriberInformation.paymentResponsibilityLevelCode) properties. - `A` - Payer Responsibility Four - `B` - Payer Responsibility Five - `C` - Payer Responsibility Six - `D` - Payer Responsibility Seven - `E` - Payer Responsibility Eight - `F` - Payer Responsibility Nine - `G` - Payer Responsibility Ten - `H` - Payer Responsibility Eleven - `P` - Primary - `S` - Secondary - `T` - Tertiary - `U` - Unknown; This code may only be used in payer to payer COB claims when the original payer determined the presence of this coverage from eligibility files received from this payer or when the original claim did not provide the responsibility sequence for this payer. ### Pricing/Repricing (Professional and Dental Claims) [#pricingrepricing-professional-and-dental-claims] Used in the professional claims and dental claims APIs. #### Exception Codes [#exception-codes-1] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.claimPricingRepricingInformation.exceptionCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimPricingRepricingInformation.exceptionCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.exceptionCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.exceptionCode) properties. - Dental claims [`claimInformation.claimPricingRepricingInformation.exceptionCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimPricingRepricingInformation.exceptionCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.exceptionCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.exceptionCode) properties. - `1` - Non-Network Professional Provider in Network Hospital - `2` - Emergency Care - `3` - Services or Specialist not in Network - `4` - Out-of-Service Area - `5` - State Mandates - `6` - Other #### Policy Compliance Codes [#policy-compliance-codes-1] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.claimPricingRepricingInformation.policyComplianceCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimPricingRepricingInformation.policyComplianceCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.policyComplianceCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.policyComplianceCode) properties. - Dental claims [`claimInformation.claimPricingRepricingInformation.policyComplianceCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimPricingRepricingInformation.policyComplianceCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.policyComplianceCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.policyComplianceCode) properties. - `1` - Procedure Followed (Compliance) - `2` - Not Followed - Call Not Made (Non-Compliance Call Not Made) - `3` - Not Medically Necessary (Non-Compliance Non-Medically Necessary) - `4` - Not Followed Other (Non-Compliance Other) - `5` - Emergency Admit to Non-Network Hospital #### Pricing Methodology Codes [#pricing-methodology-codes-1] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.claimPricingRepricingInformation.pricingMethodologyCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimPricingRepricingInformation.pricingMethodologyCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.pricingMethodologyCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.pricingMethodologyCode) properties. - Dental claims [`claimInformation.claimPricingRepricingInformation.pricingMethodologyCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimPricingRepricingInformation.pricingMethodologyCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.pricingMethodologyCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.pricingMethodologyCode) properties. - `00` - Zero Pricing (Not Covered Under Contract) - `01` - Priced as Billed at 100% - `02` - Priced at the Standard Fee Schedule - `03` - Priced at a Contractual Percentage - `04` - Bundled Pricing - `05` - Peer Review Pricing - `07` - Flat Rate Pricing - `08` - Combination Pricing - `09` - Maternity Pricing - `10` - Other Pricing - `11` - Lower of Cost - `12` - Ratio of Cost - `13` - Cost Reimbursed - `14` - Adjustment Pricing #### Reject Reason Codes [#reject-reason-codes-1] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.claimPricingRepricingInformation.rejectReasonCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimPricingRepricingInformation.rejectReasonCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.rejectReasonCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.rejectReasonCode) properties. - Dental claims [`claimInformation.claimPricingRepricingInformation.rejectReasonCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimPricingRepricingInformation.rejectReasonCode) and [`claimInformation.serviceLines[].linePricingRepricingInformation.rejectReasonCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.serviceLines.linePricingRepricingInformation.rejectReasonCode) properties. - `T1` - Cannot Identify Provider as TPO (Third Party Organization) Participant - `T2` - Cannot Identify Payer as TPO (Third Party Organization) Participant - `T3` - Cannot Identify Insured as TPO (Third Party Organization) Participant - `T4` - Payer Name or Identifier Missing - `T5` - Certification Information Missing - `T6` - Claim does not contain enough information for re-pricing ### Service Authorization Exception Codes [#service-authorization-exception-codes] **Transaction type:** 837 claims Used in the following APIs and properties: - Professional claims [`claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode) property - Dental claims [`claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode) property - Institutional claims [`claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimSupplementalInformation.serviceAuthorizationExceptionCode) property. - `1` - Immediate/Urgent Care - `2` - Services Rendered in a Retroactive Period - `3` - Emergency Care - `4` - Client has Temporary Medicaid - `5` - Request from County for Second Opinion to Determine if Recipient Can Work - `6` - Request for Override Pending - `7` - Special Handling ### Vision Condition Codes [#vision-condition-codes] **Transaction type:** 837 claims Used in the professional claims [`claimInformation.patientConditionInformationVision.conditionCodes`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.patientConditionInformationVision.conditionCodes) property. - `L1` - General Standard of 20 Degree or .5 Diopter Sphere or Cylinder Change Met - `L2` - Replacement Due to Loss or Theft - `L3` - Replacement Due to Breakage or Damage - `L4` - Replacement Due to Patient Preference - `L5` - Replacement Due to Medical Reason ## 277CA code lists [#277ca-code-lists] You may need to refer to the following code lists while evaluating the 277CA claim acknowledgment. To learn where to find the codes, how to interpret them, and how to handle common codes, visit [Interpret claim status](/healthcare/claim-status-codes). ### Claim Status Category Code [#claim-status-category-code] **Transaction type:** 277CA claim acknowledgments A claim's status is reported using a category code, which is returned in multiple locations within the 277CA. For each instance, Stedi returns two properties: - `healthCareClaimStatusCategoryCode`: The code, such as `A1`, `A2`, or `A3`. - `healthCareClaimStatusCategoryCodeValue`: The description associated with that code. These values indicate the status of a claim or encounter. Payers should only send the following codes, per the X12 HIPAA specification. However, some payers return non-compliant values, which Stedi passes through as is. - `A0` - Acknowledgement/Forwarded - The claim/encounter has been forwarded to another entity. - `A1` - Acknowledgement/Receipt - The claim/encounter has been received. This does not mean that the claim has been accepted for adjudication. - `A2` - Acknowledgement/Acceptance into adjudication system - The claim/encounter has been accepted into the adjudication system. - `A3` - Acknowledgement/Returned as unprocessable claim - The claim/encounter has been rejected and has not been entered into the adjudication system. - `A4` - Acknowledgement/Not Found - The claim/encounter can not be found in the adjudication system. - `A5` - Acknowledgement/Split Claim - The claim/encounter has been split upon acceptance into the adjudication system. - `A6` - Acknowledgement/Rejected for Missing Information - The claim/encounter is missing the information specified in the Status details and has been rejected. - `A7` - Acknowledgement/Rejected for Invalid Information - The claim/encounter has invalid information as specified in the Status details and has been rejected. - `A8` - Acknowledgement/Rejected for relational field in error. ## ERA code lists [#era-code-lists] You may need to refer to the following code lists while evaluating the 835 Electronic Remittance Advice (ERA). ### Claim Adjustment Group Code [#claim-adjustment-group-code] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the [`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].claimAdjustmentGroupCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimAdjustments.claimAdjustmentGroupCode) property. It categorizes the adjustment reason codes Stedi returns in `claimAdjustments` array items. - `CO` - Contractual Obligations | The payer uses this code when a joint payer/payee contractual agreement or a regulatory requirement resulted in an adjustment. An example of a contractual obligation might be a Participating Provider Agreement. - `OA` - Other adjustments | The payer uses this code when the adjustment doesn't fall within the other categories. - `PI` - Payor Initiated Reductions | The payer uses this code when, in their opinion, the adjustment is not the responsibility of the patient, but there is no supporting contract between the provider and the payer (i.e., medical review or professional review organization adjustments). - `PR` - Patient Responsibility | The payer uses this code when the adjustment amount is the responsibility of the patient. ### Claim Adjustment Reason Code (CARC) [#claim-adjustment-reason-code-carc] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the following properties: - [`transactions[].detailInfo[].paymentInfo[].claimAdjustments[].adjustmentReasonCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimAdjustments.adjustmentReasonCode1) (1-6) - [`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments[].adjustmentReasonCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.serviceLines.serviceAdjustments.adjustmentReasonCode1) (1-6) CARCs identify the reason for an adjustment. Visit [Claim Adjustment Reason Codes](https://x12.org/codes/claim-adjustment-reason-codes) in the X12 documentation for a complete list. ### Claim Filing Indicator Code [#claim-filing-indicator-code] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the [`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.claimFilingIndicatorCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimPaymentInfo.claimFilingIndicatorCode) property. It identifies the type of claim submitted. - `12` - Preferred Provider Organization (PPO) | This code is also used for Blue Cross/Blue Shield participating provider arrangements. - `13` - Point of Service (POS) - `14` - Exclusive Provider Organization (EPO) - `15` - Indemnity Insurance | This code is also used for Blue Cross/Blue Shield non-participating provider arrangements. - `16` - Health Maintenance Organization (HMO) Medicare Risk - `17` - Dental Maintenance Organization - `AM` - Automobile Medical - `CH` - Champus - `DS` - Disability - `HM` - Health Maintenance Organization - `LM` - Liability Medical - `MA` - Medicare Part A - `MB` - Medicare Part B - `MC` - Medicaid - `OF` - Other Federal Program | This code is used for the Black Lung Program. - `TV` - Title V - `VA` - Veterans Affairs Plan - `WC` - Workers' Compensation Health Claim - `ZZ` - Mutually Defined ### Claim Status Code [#claim-status-code] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the [`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.claimStatusCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimPaymentInfo.claimStatusCode) property. It identifies the status of an entire claim as assigned by the payer, claim review organization, or repricing organization. Codes `19`, `20`, and `21` indicate that the claim is a [crossover claim](/healthcare/receive-claim-responses#crossover-claims) that has been forwarded to an additional payer for processing. This practice is common in coordination of benefits (COB) scenarios. You may need to enroll the provider with the additional payer before they can process the claim. - `1` - Processed as Primary | The payer uses this code when the claim was adjudicated by the current payer as primary regardless of whether any part of the claim was paid. - `2` - Processed as Secondary | The payer uses this code when the claim was adjudicated by the current payer as secondary regardless of whether any part of the claim was paid. - `3` - Processed as Tertiary | The payer uses this code when the claim was adjudicated by the current payer as tertiary (or subsequent) regardless of whether any part of the claim was paid. - `4` - Denied | The payer uses this code when the Patient/Subscriber is not recognized, and the claim was not forwarded to another payer. - `19` - Processed as Primary, Forwarded to Additional Payer(s) - `20` - Processed as Secondary, Forwarded to Additional Payer(s) - `21` - Processed as Tertiary, Forwarded to Additional Payer(s) - `22` - Reversal of Previous Payment - `23` - Not Our Claim, Forwarded to Additional Payer(s) | The payer sends this code when the patient/subscriber is not recognized or the claim was not adjudicated by the payer, but other payers are known and the claim has been forwarded to another payer. - `25` - Predetermination Pricing Only - No Payment ### Credit or Debit Flag Code [#credit-or-debit-flag-code] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the [`transactions[].financialInformation.creditOrDebitFlagCode` property](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.financialInformation.creditOrDebitFlagCode). It indicates whether the payment is a credit or a debit. - `C` - Credit | The payer uses this code to indicate a credit to the provider's account and a debit to the payer's account, initiated by the payer. In the case of an EFT, no additional action is required of the provider. The payer also uses this code when a check is issued for the payment. - `D` - Debit | The payer uses this code to indicate a debit to the payer's account and a credit to the provider's account, initiated by the provider at the instruction of the payer. ### Payment Method Code [#payment-method-code] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the [`transactions[].financialInformation.paymentMethodCode` property](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.financialInformation.paymentMethodCode). It identifies the payment format. Note that the remaining properties in the `financialInformation` object contain additional requirements and information about the payment. - `ACH` - Automated Clearing House (ACH) | The payer uses this code to move money electronically through the ACH, or to notify the provider that an ACH transfer was requested. - `BOP` - Financial Institution Option | The payer uses this code to indicate that the third-party processor will choose the method of payment based upon endpoint requests or capabilities. - `CHK` - Check | The payer uses this code to indicate that a check has been issued for payment. - `FWT` - Federal Reserve Funds/Wire Transfer - Nonrepetitive | The payer uses this code to indicate that the funds were sent through the wire system. - `NON` - Non-Payment Data | The payer uses this code when the `transactions.financialInformation.transactionHandlingCode` is `H`, indicating that this is information only and no dollars are to be moved. ### Provider Adjustment Reason Code [#provider-adjustment-reason-code] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the [`transactions[].providerAdjustments[].adjustments[].adjustmentReasonCode` property](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.providerAdjustments.adjustments.adjustmentReasonCode). It identifies the reason for an adjustment made to the provider's account outside of the claim-level and service-line-level adjustments. The valid codes for X12 release 5010, which Stedi uses for ERAs, differ from the Provider Adjustment Reason Codes list on the X12 website. Use the following code list for ERAs you receive through Stedi. - `50` - Late Charge | This is the Late Claim Filing Penalty or Medicare Late Cost Report Penalty - `51` - Interest Penalty Charge | This is the interest assessment for late filing. - `72` - Authorized Return | This is the provider refund adjustment. This adjustment acknowledges a refund received from a provider for previous overpayment. The payer should provide an identifying number in the `providerAdjustmentIdentifier` property. The adjustment amount is always a negative value. - `90` - Early Payment Allowance - `AH` - Origination Fee | This is the claim transmission fee. This is used for transmission fees that aren't specific to or dependent upon individual claims. - `AM` - Applied to Borrower's Account | This identifies a loan repayment amount. This is capitation specific. - `AP` - Acceleration of Benefits | This is the accelerated payment amount or withholding. A positive value for the adjustment represents a withholding. A negative value represents a payment. - `B2` - Rebate | The provider has remitted an overpayment to the health plan in excess of the amount requested. The excess amount is being returned to the provider. The amount accepted by the health plan is reported using code `72` (Authorized Return) and is offset by the amount with code `WO` (Overpayment Recovery). This code reports the excess amount (represented as a negative adjustment amount) returned to the provider. - `B3` - Recovery Allowance | This represents the check the payer received from the provider for overpayments from other payers. This is different from the provider refund adjustment represented by code `72` (Authorized Return). This adjustment should always be offset by another adjustment referring to the original refund request or reason. - `BD` - Bad Debt Adjustment | This is the bad debt passthrough. - `BN` - Bonus | This is capitation specific. - `C5` - Temporary Allowance | This is the tentative adjustment. - `CR` - Capitation Interest | This is capitation specific. - `CS` - Adjustment - `CT` - Capitation Payment | This is capitation specific. - `CV` - Capital Passthru - `CW` - Certified Registered Nurse Anesthetist Passthru - `DM` - Direct Medical Education Passthru - `E3` - Withholding - `FB` - Forwarding Balance | This is the balance forward. A negative adjustment value represents a balance moving forward to a future ERA. A positive value represents a balance being applied from a previous ERA. The payer should provide a reference number for tracking purposes in the `providerAdjustmentIdentifier` property. - `FC` - Fund Allocation | This is capitation specific. - `GO` - Graduate Medical Education Passthru - `HM` - Hemophilia Clotting Factor Supplement - `IP` - Inceptive Premium Payment | This is capitation specific. - `IR` - Internal Revenue Service Withholding - `IS` - Interim Settlement | This is the interim rate lump sum adjustment. - `J1` - Nonreimbursable | This offsets the claim or service level data that reflects what could be paid if not for demonstration program or other limitation that prevents issuance of payment. - `L3` - Penalty | This is the capitation-related penalty. Withholding or release is identified by the sign of the adjustment amount. - `L6` - Interest Owed | This is the interest paid on claims in this ERA. - `LE` - Levy | IRS levy. - `LS` - Lump Sum | This is the disproportionate share adjustment, indirect medical education passthrough, non-physician passthrough, passthrough lump sum adjustment, or other passthrough amount. The payer should identify the specific type of lump sum adjustment in the `providerAdjustmentIdentifier` property. - `OA` - Organ Acquisition Passthru - `OB` - Offset for Affiliated Providers | The payer should identify the affiliated providers in the `providerAdjustmentIdentifier` property. - `PI` - Periodic Interim Payment | This is the periodic interim lump sum payments and reductions (PIP). The payments are made to a provider at the beginning of some period in advance of claims. These payments are advances on the expected claims for the period. The reductions are the recovery of actual claims payments during the period. For example, when a provider has a PIP payment, claims within this ERA covered by that payment are offset using this code to remove the claim payment from the current check. The sign of the adjustment amount determines whether this is a payment (negative) or reduction (positive). This payment and recoupment is effectively a loan to the provider and loan repayment. - `PL` - Payment Final | This is the final settlement. - `RA` - Retro-activity Adjustment | This is capitation specific. - `RE` - Return on Equity - `SL` - Student Loan Repayment - `TL` - Third Party Liability | This is capitation specific. - `WO` - Overpayment Recovery | This is the recovery of previous overpayment. The payer should provide an identifying number in the `providerAdjustmentIdentifier` property. - `WU` - Unspecified Recovery | Medicare is currently using this code to represent penalty collections withheld for the IRS (an outside source). ### Remittance Advice Remark Code (RARC) [#remittance-advice-remark-code-rarc] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the following properties: - [`transactions[].detailInfo[].paymentInfo[].inpatientAdjudication.claimPaymentRemarkCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.inpatientAdjudication.claimPaymentRemarkCode1) (1-6) - [`transactions[].detailInfo[].paymentInfo[].outpatientAdjudication.claimPaymentRemarkCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.outpatientAdjudication.claimPaymentRemarkCode1) (1-6) - [`transactions[].detailInfo[].paymentInfo[].serviceLines[].healthCareCheckRemarkCodes[].remarkCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.serviceLines.healthCareCheckRemarkCodes.remarkCode) - this property can either be a RARC or a National Council for Prescription Drug Programs Reject/Payment Code RARCs provide additional explanation for an adjustment already described by a Claim Adjustment Reason Code (CARC) or convey information about remittance processing. Visit [Remittance Advice Remark Codes](https://x12.org/codes/remittance-advice-remark-codes) in the X12 documentation for a complete list. ### Transaction Handling Code [#transaction-handling-code] **Transaction type:** 835 Electronic Remittance Advice Stedi returns this code in the [`transactions[].financialInformation.transactionHandlingCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.financialInformation.transactionHandlingCode) property. It indicates the actions taken by both the sender and the receiver. - `C` - Payment Accompanies Remittance Advice | The payer uses this code to instruct the third-party processor to move funds and remittance details together through the banking system. - `D` - Make Payment Only | The payer uses this code to instruct the third-party processor to move only funds through the banking system and to ignore any remittance information. - `H` - Notification Only | The payer uses this code when the actual provider payment (listed in the `transactions.financialInformation.totalActualProviderPaymentAmount` property) is zero, and the transaction is not being used for Prenotification of Future Transfers. This indicates remittance information without any associated payment. - `I` - Remittance Information Only | The payer uses this code to indicate to the payee that the remittance detail is moving separately from the payment. - `P` - Prenotification of Future Transfers | This code is used only by the payer and the banking system to initially validate account numbers before beginning an EFT relationship. - `U` - Split Payment and Remittance | The payer uses this code to instruct the third-party processor to split the payment and remittance details and send each on a separate path. - `X` - Handling Party's Option to Split Payment and Remittance | The payer uses this code to instruct the third-party processor to move the payment and remittance detail, together or separately, based upon endpoint requests or capabilities. ## Claim status code lists [#claim-status-code-lists] You may need to reference the following code lists when working with the 276/277 claim status request or response. To learn where to find the codes, how to interpret them, and how to handle common codes, visit [Interpret claim status](/healthcare/claim-status-codes). ### Claim status [#claim-status] **Transaction type:** 276/277 real-time claim status Used in the [`claims[].claimStatus.statusCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.statusCode) property. This is the status code used to identify the status of an entire claim or a service line. For example, code `20` means `Accepted for Processing`. This is either a Health Care Claim Status Code or a National Council for Prescription Drug Programs (NCPDP) Reject/Payment Code, when the status is related to pharmacy claims. - Visit [Claim Status Codes](https://x12.org/codes/claim-status-codes) in the official X12 documentation for a complete list of Health Care Claim Status Codes. - Visit the [National Council for Prescription Drug Programs website](https://www.ncpdp.org/) for access to the Reject/Payment Code list. ### Claim status category [#claim-status-category] **Transaction type:** 276/277 real-time claim status A code that provides more detail about the claim status. For example, code `F1` means `Finalized/Revised - Adjudication information has been changed`. It's returned in the following properties: - [`claims[].claimStatus.statusCategoryCode`](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.statusCategoryCode) - [`claims[].serviceDetails[].status[].statusCategoryCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.serviceDetails.status.statusCategoryCode) Visit [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) in the official X12 documentation for a complete list. ### Entity identifier [#entity-identifier] **Transaction type:** 276/277 real-time claim status A code identifying the organizational entity, physical location, property, or individual associated with the `claims.claimStatus.statusCode`. For example, code `1G` means `Oncology Center`. It's returned in the following properties: - [`claims[].claimStatus.entityCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.entityCode) - [`claims[].serviceDetails[].status[].entityCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.serviceDetails.status.entityCode) - `1E` - Health Maintenance Organization (HMO) - `1G` - Oncology Center - `1H` - Kidney Dialysis Unit - `1I` - Preferred Provider Organization (PPO) - `1O` - Acute Care Hospital - `1P` - Provider - `1Q` - Military Facility - `1R` - University, College or School - `1S` - Outpatient Surgicenter - `1T` - Physician, Clinic or Group Practice - `1U` - Long Term Care Facility - `1V` - Extended Care Facility - `1W` - Psychiatric Health Facility - `1X` - Laboratory - `1Y` - Retail Pharmacy - `1Z` - Home Health Care - `2A` - Federal, State, County or City Facility - `2B` - Third-Party Administrator - `2D` - Miscellaneous Health Care Facility - `2E` - Non-Health Care Miscellaneous Facility - `2I` - Church Operated Facility - `2K` - Partnership - `2P` - Public Health Service Facility - `2Q` - Veterans Administration Facility - `2S` - Public Health Service Indian Service Facility - `2Z` - Hospital Unit of an Institution (prison hospital, college infirmary, etc.) - `03` - Dependent - `3A` - Hospital Unit Within an Institution for the Mentally Retarded - `3C` - Tuberculosis and Other Respiratory Diseases Facility - `3D` - Obstetrics and Gynecology Facility - `3E` - Eye, Ear, Nose and Throat Facility - `3F` - Rehabilitation Facility - `3G` - Orthopedic Facility - `3H` - Chronic Disease Facility - `3I` - Other Specialty Facility - `3J` - Children's General Facility - `3K` - Children's Hospital Unit of an Institution - `3L` - Children's Psychiatric Facility - `3M` - Children's Tuberculosis and Other Respiratory Diseases Facility - `3N` - Children's Eye, Ear, Nose and Throat Facility - `3O` - Children's Rehabilitation Facility - `3P` - Children's Orthopedic Facility - `3Q` - Children's Chronic Disease Facility - `3R` - Children's Other Specialty Facility - `3S` - Institution for Mental Retardation - `3T` - Alcoholism and Other Chemical Dependency Facility - `3U` - General Inpatient Care for AIDS/ARC Facility - `3V` - AIDS/ARC Unit - `3W` - Specialized Outpatient Program for AIDS/ARC - `3X` - Alcohol/Drug Abuse or Dependency Inpatient Unit - `3Y` - Alcohol/Drug Abuse or Dependency Outpatient Services - `3Z` - Arthritis Treatment Center - `4A` - Birthing Room/LDRP Room - `4B` - Burn Care Unit - `4C` - Cardiac Catherization Laboratory - `4D` - Open-Heart Surgery Facility - `4E` - Cardiac Intensive Care Unit - `4F` - Angioplasty Facility - `4G` - Chronic Obstructive Pulmonary Disease Service Facility - `4H` - Emergency Department - `4I` - Trauma Center (Certified) - `4J` - Extracorporeal Shock-Wave Lithotripter (ESWL) Unit - `4L` - Genetic Counseling/Screening Services - `4M` - Adult Day Care Program Facility - `4N` - Alzheimer's Diagnostic/Assessment Services - `4O` - Comprehensive Geriatric Assessment Facility - `4P` - Emergency Response (Geriatric) Unit - `4Q` - Geriatric Acute Care Unit - `4R` - Geriatric Clinics - `4S` - Respite Care Facility - `4U` - Patient Education Unit - `4V` - Community Health Promotion Facility - `4W` - Worksite Health Promotion Facility - `4X` - Hemodialysis Facility - `4Y` - Home Health Services - `4Z` - Hospice - `5A` - Medical Surgical or Other Intensive Care Unit - `5B` - Histopathology Laboratory - `5C` - Blood Bank - `5D` - Neonatal Intensive Care Unit - `5E` - Obstetrics Unit - `5F` - Occupational Health Services - `5G` - Organized Outpatient Services - `5H` - Pediatric Acute Inpatient Unit - `5I` - Psychiatric Child/Adolescent Services - `5J` - Psychiatric Consultation-Liaison Services - `5K` - Psychiatric Education Services - `5L` - Psychiatric Emergency Services - `5M` - Psychiatric Geriatric Services - `5N` - Psychiatric Inpatient Unit - `5O` - Psychiatric Outpatient Services - `5P` - Psychiatric Partial Hospitalization Program - `5Q` - Megavoltage Radiation Therapy Unit - `5R` - Radioactive Implants Unit - `5S` - Therapeutic Radioisotope Facility - `5T` - X-Ray Radiation Therapy Unit - `5U` - CT Scanner Unit - `5V` - Diagnostic Radioisotope Facility - `5W` - Magnetic Resonance Imaging (MRI) Facility - `5X` - Ultrasound Unit - `5Y` - Rehabilitation Inpatient Unit - `5Z` - Rehabilitation Outpatient Services - `6A` - Reproductive Health Services - `6B` - Skilled Nursing or Other Long-Term Care Unit - `6C` - Single Photon Emission Computerized Tomography (SPECT) Unit - `6D` - Organized Social Work Service Facility - `6E` - Outpatient Social Work Services - `6F` - Emergency Department Social Work Services - `6G` - Sports Medicine Clinic/Services - `6H` - Hospital Auxiliary Unit - `6I` - Patient Representative Services - `6J` - Volunteer Services Department - `6K` - Outpatient Surgery Services - `6L` - Organ/Tissue Transplant Unit - `6M` - Orthopedic Surgery Facility - `6N` - Occupational Therapy Services - `6O` - Physical Therapy Services - `6P` - Recreational Therapy Services - `6Q` - Respiratory Therapy Services - `6R` - Speech Therapy Services - `6S` - Women's Health Center/Services - `6U` - Cardiac Rehabilitation Program Facility - `6V` - Non-Invasive Cardiac Assessment Services - `6W` - Emergency Medical Technician - `6X` - Disciplinary Contact - `6Y` - Case Manager - `7C` - Place of Occurrence - `13` - Contracted Service Provider - `17` - Consultant's Office - `28` - Subcontractor - `30` - Service Supplier - `36` - Employer - `40` - Receiver - `43` - Claimant Authorized Representative - `44` - Data Processing Service Bureau - `61` - Performed At - `71` - Attending Physician - `72` - Operating Physician - `73` - Other Physician - `74` - Corrected Insured - `77` - Service Location - `80` - Hospital - `82` - Rendering Provider - `84` - Subscriber's Employer - `85` - Billing Provider - `87` - Pay-to Provider - `95` - Research Institute - `CK` - Pharmacist - `CZ` - Admitting Surgeon - `D2` - Commercial Insurer - `DD` - Assistant Surgeon - `DJ` - Consulting Physician - `DK` - Ordering Physician - `DN` - Referring Provider - `DO` - Dependent Name - `DQ` - Supervising Physician - `E1` - Person or Other Entity Legally Responsible for a Child - `E2` - Person or Other Entity With Whom a Child Resides - `E7` - Previous Employer - `E9` - Participating Laboratory - `FA` - Facility - `FD` - Physical Address - `FE` - Mail Address - `G0` - Dependent Insured - `G3` - Clinic - `GB` - Other Insured - `GD` - Guardian - `GI` - Paramedic - `GJ` - Paramedical Company - `GK` - Previous Insured - `GM` - Spouse Insured - `GY` - Treatment Facility - `HF` - Healthcare Professional Shortage Area (HPSA) Facility - `HH` - Home Health Agency - `I3` - Independent Physicians Association (IPA) - `IJ` - Injection Point - `IL` - Insured or Subscriber - `IN` - Insurer - `LI` - Independent Lab - `LR` - Legal Representative - `MR` - Medical Insurance Carrier - `MSC` - Mammography Screening Center - `OB` - Ordered By - `OD` - Doctor of Optometry - `OX` - Oxygen Therapy Facility - `P0` - Patient Facility - `P2` - Primary Insured or Subscriber - `P3` - Primary Care Provider - `P4` - Prior Insurance Carrier - `P6` - Third Party Reviewing Preferred Provider Organization (PPO) - `P7` - Third Party Repricing Preferred Provider Organization (PPO) - `PRP` - Primary Payer - `PT` - Party to Receive Test Report - `PV` - Party performing certification - `PW` - Pickup Address - `QA` - Pharmacy - `QB` - Purchase Service Provider - `QC` - Patient - `QD` - Responsible Party - `QE` - Policyholder - `QH` - Physician - `QK` - Managed Care - `QL` - Chiropractor - `QN` - Dentist - `QO` - Doctor of Osteopathy - `QS` - Podiatrist - `QV` - Group Practice - `QY` - Medical Doctor - `RC` - Receiving Location - `RW` - Rural Health Clinic - `S4` - Skilled Nursing Facility - `SEP` - Secondary Payer - `SJ` - Service Provider - `SU` - Supplier/Manufacturer - `T4` - Transfer Point | Used to identify the geographic location where a patient is transferred or diverted. - `TL` - Testing Laboratory - `TQ` - Third Party Reviewing Organization (TPO) - `TT` - Transfer To - `TTP` - Tertiary Payer - `TU` - Third Party Repricing Organization (TPO) - `UH` - Nursing Home - `X3` - Utilization Management Organization - `X4` - Spouse - `X5` - Durable Medical Equipment Supplier - `ZZ` - Mutually Defined ### Product or service ID qualifier [#product-or-service-id-qualifier] **Transaction type:** 276/277 real-time claim status Used in the [`serviceLineInformation.productOrServiceIDQualifier`](/healthcare/api-reference/post-healthcare-claim-status#body.serviceLineInformation.productOrServiceIDQualifier) request property and returned in the [`claims[].serviceDetails[].service.serviceIdQualifierCode`](/healthcare/api-reference/post-healthcare-claim-status#response.claims.serviceDetails.service.serviceIdQualifierCode) response property. It identifies the source of the associated procedure code. | Code | Description | Usage Notes | | ---- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `AD` | American Dental Association Codes | - | | `ER` | Jurisdiction Specific Procedure and Supply Codes | This code is not allowed for use under HIPAA. The qualifier can only be used when 1) If a new rule names the Jurisdiction Specific Procedure and Supply Codes as an allowable code set under HIPAA, OR 2) The Secretary grants an exception to use the code set as a pilot project as allowed under the law, OR 3) For claims that aren't covered under HIPAA. | | `HC` | Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes | Because the CPT codes of the American Medical Association are also level 1 HCPCS codes, the CPT codes are reported under the code HC. | | `HP` | Health Insurance Prospective Payment System (HIPPS) Skilled Nursing Facility Rate Code | - | | `IV` | Home Infusion EDI Coalition (HIEC) Product/Service Code | This code is not allowed for use under HIPAA. The qualifier can only be used when 1) If a new rule names the Home Infusion EDI Coalition Codes as an allowable code set under HIPAA, OR 2) The Secretary grants an exception to use the code set as a pilot project as allowed under the law, OR 3) For claims that aren't covered under HIPAA. | | `N4` | National Drug Code in 5-4-2 Format | - | | `NU` | National Uniform Billing Committee (NUBC) UB92 Codes | This code is the NUBC Revenue Code. | | `WK` | Advanced Billing Concepts (ABC) Codes | This code set has been approved by the Secretary of HHS as a pilot project allowed under HIPAA law. The qualifier may only be used in transactions covered under HIPAA; by parties registered in the pilot project and their trading partners, OR when a new rule names the Complementary, Alternative, or Holistic Procedure Codes as an allowable code set under HIPAA, OR for claims that aren't covered under HIPAA. | # Overview Source: https://www.stedi.com/docs/healthcare/claims-processing-workflows-overview You can use Stedi to automate your claims processing workflow from claim submission through payment. Once you integrate with Stedi, you can monitor claim submissions and responses in the Stedi portal. ## Claims processing workflow [#claims-processing-workflow] Here's an overview of the claims processing steps you can automate with Stedi. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. It's **always** required for 835 Electronic Remittance Advice (ERAs) and sometimes required for other transaction types, depending on the payer. You'll submit transaction enrollment requests through either the [Enrollments API](/healthcare/api-reference/post-enrollment-create-enrollment) or the Stedi portal. Once submitted, Stedi handles the entire process for you, including sending the required information to the payer and monitoring each enrollment's status. ### Submit claims and attachments [#submit-claims-and-attachments] You can submit [837P professional](/healthcare/submit-professional-claims), [837D dental](/healthcare/submit-dental-claims), and [837I institutional](/healthcare/submit-institutional-claims) claims through the following methods: - [Clearinghouse APIs](/healthcare/api-reference/post-create-professional-claim-json) in either JSON or X12 EDI format. - [SFTP](/healthcare/submit-claims-sftp-connection) in X12 EDI format. - [Stedi portal](https://portal.stedi.com/app/healthcare/transactions) in either X12 EDI format (all claim types) or through our CMS-1500 form (professional claims). Before sending claims to the payer, Stedi checks them against our growing library of [claim edits](/healthcare/claim-edits-and-repairs) to identify errors that could lead to rejections or denials. Our APIs return edit rejections in real time, so you can fix and resubmit claims immediately. You can also submit [unsolicited 275 claim attachments](/healthcare/submit-claim-attachments) as needed to support claims, such as medical records and treatment plans. You can submit attachments through Stedi APIs, SFTP, or the Stedi portal. ### Retrieve 277CA claim acknowledgments [#retrieve-277ca-claim-acknowledgments] You'll likely receive multiple [277CA claim acknowledgments](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) for each claim as it moves through Stedi and the payer's systems. A 277CA indicates whether a claim was accepted or rejected at a particular processing stage. - **APIs:** You can [poll](/healthcare/receive-claim-responses#poll-for-transactions) or use [event destinations](/healthcare/event-destinations-configure) to discover new 277CAs. Then, you can [retrieve 277CAs](/healthcare/receive-claim-responses#retrieve-responses-from-stedi) through Stedi APIs in either JSON or X12 EDI format. - **SFTP:** You can [retrieve 277CA files](/healthcare/submit-claims-sftp-retrieve-responses#retrieve-claim-responses) from the `from-stedi` directory. - **Stedi portal:** You can review the 277CAs for submitted claims from the [claims view](/healthcare/claims-view). ### Resubmit rejected claims [#resubmit-rejected-claims] When you receive a 277CA indicating a claim was rejected, you'll need to review the rejection reason, fix the errors in the claim data, and [resubmit the claim](/healthcare/resubmit-cancel-claims). Common rejection reasons include invalid or missing data, incorrect patient or provider details, incorrect billing codes or modifiers, and missing attachments. You can resubmit claims through Stedi APIs, SFTP, or the Stedi portal. ### Run real-time claim status checks [#run-real-time-claim-status-checks] Once a claim has been accepted into the payer's adjudication system, you can run [real-time claim status checks](/healthcare/check-claim-status) to get the current status of the claim. You can submit real-time claim status requests through Stedi APIs in either JSON or X12 EDI format. You can also submit them manually through the Stedi portal as needed. ### Retrieve 835 Electronic Remittance Advice (ERAs) [#retrieve-835-electronic-remittance-advice-eras] When the payer has finished adjudicating a claim, they'll send back an [835 Electronic Remittance Advice (ERA)](/healthcare/claim-responses-overview#835-electronic-remittance-advice-era) with details about payments for specific services and explanations for any adjustments or denials. - **APIs:** You can either [poll](/healthcare/receive-claim-responses#poll-for-transactions) or use [event destinations](/healthcare/event-destinations-configure) to discover new 835 ERAs. Then, you can [retrieve 835 ERAs](/healthcare/receive-claim-responses#retrieve-responses-from-stedi) through Stedi APIs in either JSON or X12 EDI format. - **SFTP:** You can [retrieve 835 ERA files](/healthcare/submit-claims-sftp-retrieve-responses#retrieve-claim-responses) from the `from-stedi` directory. ## Example API implementation [#example-api-implementation] To build a professional claims workflow using Stedi JSON APIs, you typically follow these steps: 1. Submit required transaction enrollment requests through the [Providers](/healthcare/api-reference/post-enrollment-create-provider) and [Enrollments](/healthcare/api-reference/post-enrollment-create-enrollment) APIs. 2. Set up [event destinations](/healthcare/event-destinations-configure) to listen for the [events](/healthcare/event-destinations-event-types) Stedi emits when it processes new 277CA claim acknowledgments and 835 Electronic Remittance Advice (ERAs). 3. Call the [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) or [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) endpoint to submit claims in JSON format. 4. Call the [277CA Report endpoint](/healthcare/api-reference/get-healthcare-reports-277) to retrieve processed 277CAs from Stedi in JSON format. 5. Evaluate 277CAs. If the claim was rejected, fix the errors and resubmit through the [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) or [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) endpoint. 6. Call the [835 Report endpoint](/healthcare/api-reference/get-healthcare-reports-835) to retrieve 835 ERAs from Stedi in JSON format. You may also call the [Real-Time Claim Status JSON endpoint](/healthcare/api-reference/post-healthcare-claim-status) as needed to check on claims that have entered the payer's adjudication system. ## Claims view [#claims-view] The [claims view](/healthcare/claims-view) in the Stedi portal provides insight into your claims processing pipeline. In the claims view, you can: - Review every claim you submit through Stedi and the details of related claim transactions, such as 277CA claim acknowledgments. - Review a clear timeline of activity for each claim, including resubmissions and responses you receive from Stedi and the payer. - Understand a claim's current status within the processing pipeline, such as whether the claim has been accepted or rejected. - Filter submitted claims by key details, such as processed date, status, patient name, and service date(s). # Claims view Source: https://www.stedi.com/docs/healthcare/claims-view The [claims view](https://portal.stedi.com/app/healthcare/claims) in the Stedi portal provides insight into your claims processing pipeline. In the claims view, you can: - Submit claims through the interactive CMS-1500 form or by uploading raw X12 EDI files. - Review every claim you submit through Stedi and the details of related claim transactions, such as 277CA claim acknowledgments. - Review a clear timeline of activity for each claim, including resubmissions and responses you receive from Stedi and the payer. - Understand a claim's current [status](#claim-processing-status) within the processing pipeline, such as whether the claim has been accepted or rejected. - Filter submitted claims by key details, such as processed date, status, patient name, and service date(s). - Review 835 Electronic Remittance Advice (ERAs) and download ERA PDFs. You can also retrieve claim data programmatically through the API. Visit [List Claims](/healthcare/api-reference/list-claims), [Retrieve Claim Record](/healthcare/api-reference/get-claim-record), or [Retrieve Claim Timeline](/healthcare/api-reference/get-claim-timeline) for details. These endpoints are also available in the Stedi TypeScript and Python [SDKs](/healthcare/sdks). ## Submit claims [#submit-claims] You can submit claims through the interactive CMS-1500 form or by uploading raw X12 EDI files. Manual claim submission is useful for testing, QA, debugging your claims processing pipeline, and handling scenarios that fall outside your normal workflow. To submit a claim, click **Submit claim** in the claims view and select one of the following options: - **CMS-1500 form**: Submit professional claims through an interactive form. Visit [Submit professional claims](/healthcare/submit-professional-claims-ui) for detailed instructions. - **Upload raw X12 file**: Upload X12 EDI files for professional, institutional, or dental claims. You can submit multiple claims in a single file. Visit the claim submission pages for detailed instructions: - [Professional claims](/healthcare/submit-professional-claims-ui) - [Institutional claims](/healthcare/submit-institutional-claims-ui) - [Dental claims](/healthcare/submit-dental-claims-ui) ## Review claims [#review-claims] You can filter, export, and review detailed information about all claims you've submitted through Stedi in the [claims view](https://portal.stedi.com/app/healthcare/claims). Toggle **Test mode** to **ON** in the side navigation to review test claims you've submitted. ### Filter claims [#filter-claims] Click **Claims** in the side navigation to view a list of the claims you've submitted through Stedi. Available filters include: | Filter | Description | | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Status** | Where a claim is in the processing pipeline. Expand **Rejected** to filter for claims rejected by Stedi or by the payer. Refer to [claim processing status](#claim-processing-status) for details on how we determine a claim's status and how to know if action is required to move the claim forward. | | **Patient name** | The patient's first or last name. Supports partial matching. | | **Patient control number** | The patient control number for the claim, sometimes referred to as the claim ID. You submitted this value in:
  • **CMS-1500 claim form:** **Box 26** (Patient's Account No.)
  • **JSON:** `claimInformation.patientControlNumber`
  • **X12 EDI:** `Loop 2300` (Claim Information) `CLM01` (Patient Control Number)
| | **Reversals** | Claims with payment reversals or no reversals. | | **Print status** | Where a [paper claim](/healthcare/submit-paper-claims#track-print-status) is in the printing and mailing process - **Staged**, **Queued**, **Printed**, **Mailed**, or **Failed**. | | **Last submitted** | When Stedi received the most recent submission for each claim. | | **Type** | Claim type - professional, dental, or institutional. | | **Member ID** | The subscriber's member ID for their health plan. | | **Payer** | Payer name, ID, or alias. Refer to the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list for each payer. | | **Billing provider name** | The billing provider's name. Supports partial matching. | | **Billing provider NPI** | The billing provider's NPI. | | **Billing provider Tax ID** | The billing provider's Tax Identification Number (TIN). | | **Amount charged** | Claims with a minimum or maximum charge amount. | | **Amount paid** | Claims with a minimum or maximum amount paid. | | **Service date** | Claims with specific service dates. | When you apply one or more filters, Stedi displays the total number of claims that match your filter criteria. This count helps you quantify specific scenarios, such as the number of claims in a rejected status from the previous week or the number of claims submitted for a certain billing provider. If a claim is resubmitted and linked to the initial claim record, the original submission and any resubmissions are counted together as one claim. ### Export claims list [#export-claims-list] You can export filtered claims lists to an Excel file (`.xlsx`) for further analysis or reporting. For example, you can export filtered lists that help you: - Track claim status over specific time periods. - Identify rejected claims by payer. - Reconcile billing records with your practice management system. - Generate custom reports for specific billing providers or date ranges. To export a filtered claims list: 1. Apply [one or more filters](#filter-claims) to narrow down the claims you want to export. The export button appears once you apply at least one filter. 2. Click **Export**. Stedi disables the export button when the filtered list contains more than 250,000 records. In this case, add more filters to reduce the list size. 3. Stedi creates the report and sends you an in-app notification when it's ready. 4. The download happens automatically when the report is complete. You can also manually download the report at any time by clicking the bell icon in the side navigation, finding the **Download is ready** notification, and clicking **Download**. Your export file includes the filtered claims list and a metadata tab that includes the export date, the filters you applied, and the number of records. Export files are available for 30 days from the notification. After 30 days, the download link expires. ### Claim timeline [#claim-timeline] From the claims view, click any claim to review a timeline of its processing activity, including the submission date, when you received 277CA claim acknowledgments from Stedi and the payer, and when you received claim payment information from 835 ERAs. The timeline view also includes resubmissions for the claim and any associated 277CAs or claim payment information resulting from those resubmissions. The details panel displays the patient control number (PCN), amount charged, and amount paid. Hover over a claim payment information card and click **See more detail** to view the [claim payment information details](#claim-payment-information). ![claims view timeline](/images/providers/claims-view-timeline.png) Real-time claim status requests aren't currently included in the timeline. ### Transaction details [#transaction-details] From a claim's timeline view, hover over a transaction and click **See more detail** to review a user-friendly summary of key information, such as patient information, service dates, and service line details. You'll also be able to review the raw X12 EDI for the transaction. ### Download CMS-1500 claim PDF [#download-cms-1500-claim-pdf] You can download a PDF version of professional claims in the CMS-1500 format from both the timeline view and the claim's detail page. 1. From the [claims view](https://portal.stedi.com/app/healthcare/claims), click a professional claim to open its timeline. 2. Do one of the following: - From the timeline view, hover over the claim and click **Download CMS-1500 claim PDF**. - Open the claim's detail page and click **Download CMS-1500 claim PDF**. 3. In the download menu, choose whether to **Include CMS-1500 form background**. This option is checked by default. The National Uniform Claim Committee (NUCC) and CMS provide exact specifications for blank CMS-1500 forms, including paper size and ink color. Many provider offices are accustomed to using these pre-printed forms, and their Practice Management System (PMS) applications are designed to print claim data onto them. Generating PDFs with no background allows you to print the claim data directly onto official pre-printed forms. 4. Click **Confirm download**. The PDF downloads to your computer. ## Review 835 ERAs [#review-835-eras] You can review 835 ERAs by filtering the full list on the [835 ERAs view](https://portal.stedi.com/app/healthcare/claims/eras) or finding ERAs for a specific claim from its timeline. Toggle **Test mode** to **ON** in the side navigation to review test ERAs. ### Filter ERAs [#filter-eras] Click **835 ERAs** in the side navigation to view a list of all 835 ERAs in your account. Available filters include: | Filter | Description | | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Processed date** | When Stedi received the ERA. | | **Trace number** | The unique identifier the payer assigns to the ERA transaction. You can use this value to link the ERA with the associated payment, if applicable. For example: When the payment is remitted by check, the trace number is the check number.
  • **JSON:** [`transactions[].paymentAndRemitReassociationDetails.checkOrEFTTraceNumber`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.paymentAndRemitReassociationDetails.checkOrEFTTraceNumber)
  • **X12 EDI:** `TRN02` (Check or EFT Trace Number).
| | **Total paid** | The total amount paid across all claims included in the ERA. | | **Payment date** | When the payer issued the payment. | | **Payment method** | The method used for payment (such as check or ACH). | | **Payer** | Payer name, ID, or alias. Refer to the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list for each payer. | | **Payee** | The payee's (billing provider's) name. Supports partial matching. | | **Payee NPI** | The payee's (billing provider's) National Provider Identifier. | | **Payee Tax ID** | The payee's (billing provider's) Tax Identification Number. | | **PCN (Patient Control Number)** | A claim's PCN, sometimes referred to as the claim ID. Since an ERA can contain multiple claims, this returns ERAs where any claim matches the specified PCN. This is the same value you submitted on the original claim in:
  • **CMS-1500 claim form:** **Box 26** (Patient's Account No.)
  • **JSON:** `claimInformation.patientControlNumber`
  • **X12 EDI:** `Loop 2300` (Claim Information) `CLM01` (Patient Control Number)
| When you apply one or more filters, Stedi displays the total number of ERAs that match your filter criteria. This count helps you quantify specific scenarios, such as the number of ERAs received from a payer in a given month or the total number of ERAs for a specific billing provider. ### Export ERA list [#export-era-list] You can export filtered ERA lists to an Excel file (`.xlsx`) for further analysis or reporting. For example, you can export filtered lists that help you: - Generate monthly payment reports based on payment received date. - Track reimbursements by payer or billing provider. - Reconcile payments with your accounting system. - Analyze payment trends and adjustment patterns across specific time periods. To export a filtered ERA list: 1. Apply [one or more filters](#filter-eras) to narrow down the ERAs you want to export. The export button appears once you apply at least one filter. 2. Click **Export**. Stedi disables the export button when the filtered list contains more than 250,000 records. In this case, add more filters to reduce the list size. 3. Stedi creates the report and sends you an in-app notification when it's ready. 4. The download happens automatically when the report is complete. You can also manually download the report at any time by clicking the bell icon in the side navigation, finding the **Download is ready** notification, and clicking **Download**. Your export file includes the filtered ERA list and a metadata tab that includes the export date, the filters you applied, and the number of records. Export files are available for 30 days from the notification. After 30 days, the download link expires. ### ERA details [#era-details] From the [835 ERAs view](https://portal.stedi.com/app/healthcare/claims/eras), click any ERA to review its details. The **Overview** tab contains key information about the ERA, including: - Payer and payee information. - Payment details including payment method, payment date, total paid, and total charged. - Totals table showing the number of claims, total billed amount, total deductible, and total adjustments across all claims. - Claim payment information table with one row per claim payment information record. Click any row to view the [claim payment information details](#claim-payment-information). - **Payment** section if you have [Stedi Treasury](/healthcare/treasury-overview) set up. Click **View in Treasury** to go to the Payment details page where you can review the payment associated with this ERA. You can also click the **X12** tab to review the raw X12 EDI for the transaction in the EDI Inspector. Hover over elements in the EDI to review the corresponding part of the X12 specification. ### Claim payment information [#claim-payment-information] The claim payment information details show payment information for a single claim from an 835 ERA. This is different from the [ERA details](#era-details), which shows information for all claims in the ERA. To access the claim payment information details: - Click **See more detail** on a claim payment information card in a claim's timeline. - Click a claim payment information row in the Claim payment information table on an ERA detail view. The **Overview** tab shows payment details for the specific claim, including: - Linked claim with a link to view the claim's timeline. - Claim-level payment information (total charged, total paid, patient responsibility, and adjustments). - Service line details with line-level payment information and adjustments. Click the **X12** tab to review the `Loop 2100 CLP` (Claim Payment Information) in the EDI Inspector. Hover over elements in the EDI to review the corresponding part of the X12 specification. ### Download ERA PDF [#download-era-pdf] You can download a PDF version of the ERA from its details page. 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click **835 ERAs**. 2. Click the ERA to open its details page. 3. Click **Download 835 ERA PDF** at the top right. 4. In the download menu, select your preferences: - **Include Stedi logo in 835 ERA PDF**: Adds the Stedi logo to the PDF. - **Download each claim as a separate PDF**: Downloads one PDF for each claim included in the ERA. When the ERA contains multiple claims, the PDFs will be provided as a zip file. For example, if the ERA contains 5 claims, you'll download a zip file containing 5 separate PDFs. 5. Click **Confirm PDF download**. You can also download a PDF for an individual claim payment information record. From the ERA details page, click a row in the claim payment information table to open the claim payment information details, then click **Download as PDF** at the top right. ## Review your payers [#review-your-payers] The [My Payers view](https://portal.stedi.com/app/healthcare/claims/my-payers) shows all payers with which you have exchanged 837 claims or 835 Electronic Remittance Advice (ERAs) through Stedi. You can use this view to: - Review all the payers you've exchanged claim data with through Stedi. - Identify payers that have issues with transaction enrollment. If you've sent claims to a payer and haven't received any ERAs within your expected timeframe, you may need to complete [transaction enrollment](/healthcare/transaction-enrollment), or there may be issues with an existing enrollment request. - Verify that your claims processing cycle is working from end-to-end for all your payers. ![My Payers view](/images/providers/my-payers-view.png) Hover over any payer row to access quick links: - **View in network**: View the payer's details in the [Payer Network](https://www.stedi.com/healthcare/network). - **Find claims**: View all claims submitted to this payer in the [claims view](https://portal.stedi.com/app/healthcare/claims). - **Find 835 ERAs**: View all 835 ERAs you received from this payer through Stedi. - **Find enrollments**: View all enrollments with this payer. ### Filter your payer list [#filter-your-payer-list] Click the filter options at the top of the My Payers view to filter the list: | Filter | Description | | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | | **Payer** | Filter by payer name, ID or alias. Refer to the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list for each payer. | | **837s** | Filter by whether or not you've used Stedi to submit a professional, dental, or institutional claim. | | **835 ERAs** | Filter by whether or not you've received an 835 Electronic Remittance Advice (ERA) from the payer through Stedi. | ## Resubmit or cancel claims [#resubmit-or-cancel-claims] You can resubmit or cancel claims from within the claims view. To resubmit a claim: 1. Click the claim you want to resubmit to open its timeline. 2. Hover over the claim submission and do one of the following: - Click **Edit and resubmit**. This option appears when the last claim submission was rejected by either Stedi or the payer. - Click **See more detail** to review the claim's details page, then click **Edit and resubmit**. 3. Select one of the following options: - **CMS-1500 resubmission**: Resubmit professional claims through the interactive form. Visit [Resubmit or cancel claims](/healthcare/resubmit-cancel-claims#cms-1500-form-professional) for detailed instructions. - **X12 transaction resubmission**: Resubmit professional, institutional, or dental claims through the X12 EDI editor. Visit [Resubmit or cancel claims](/healthcare/resubmit-cancel-claims#x12-edi-editor) for detailed instructions. ## Claim processing status [#claim-processing-status] The claims view displays each claim's current processing status. These statuses are designed to help you quickly understand whether action is required to move claims forward. Stedi's claim processing statuses are different from the status codes you receive in 277CAs and in real-time claim status checks: - **277CAs:** Each 277CA contains one or more status category codes that indicate receipt, acceptance or rejection at a _specific stage_ of processing. Stedi evaluates all available 277CAs to determine the claim's current _overall_ processing status. - **Real-time claim status checks:** Claim status checks can only provide status information about claims that have been accepted into the payer's adjudication system. Stedi's statuses provide insight both before and after the claim reaches the payer. To learn how to interpret the status codes in 277CAs and claim status checks, visit [Interpret claim status](/healthcare/claim-status-codes). ### Stedi claim status codes [#stedi-claim-status-codes] A claim in the Stedi portal can have one of the following processing statuses: | status | description | What to do | | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | Submitted | You submitted the claim to Stedi but haven't yet received a 277CA response from Stedi or the payer. | No action needed. Monitor for the next 277CA claim acknowledgment with acceptance or rejection status. | | Received | The clearinghouse or payer has acknowledged receipt of the claim. This doesn't mean the claim has been accepted for adjudication. | No action needed. Monitor for the next 277CA claim acknowledgment with acceptance or rejection status. | | Rejected | Either Stedi or the payer rejected the claim before the start of adjudication. This can happen even when the payer has acknowledged receipt. | Review the 277CA claim acknowledgment for error details, correct the claim, and resubmit. | | Accepted | The payer has accepted the claim into their adjudication system and it's currently being processed or adjudicated. | No action needed. Monitor for the next 277CA claim acknowledgment or the 835 ERA with adjudication details. | | Processed | The payer completed adjudication and acknowledged responsibility for the claim. This doesn't mean the payer paid the claim in full, or at all. | Review the claim payment information, including the paid amount, patient responsibility, and adjustments, to confirm the reimbursement is correct. | | Denied | The payer completed adjudication and denied responsibility for the claim. Unlike a rejection, which happens before adjudication, a denial is the payer's decision after reviewing the claim. | Review the claim payment information, including the denial reasons, to decide whether to correct and resubmit the claim or file an appeal. | | Unknown | Stedi can't determine a single status for this claim, usually because the payer's responses are mixed or incomplete. | Review any 277CA claim acknowledgments and claim payment information to determine the latest outcome. Contact the payer if you need more detail. | #### Received vs. Accepted [#received-vs-accepted] Many payers send two 277CAs: - An initial 277CA with `STC01-01` (Health Care Claim Status Category Code) set to `A1` (Acknowledgment/Receipt). Stedi sets the claim status to **Received**. - A second 277CA with `STC01-01` set to an explicit Accepted or Rejected code. Stedi then updates the claim status to **Accepted** or **Rejected** accordingly. However, some payers don't send 277CAs with explicit Accepted codes. In these cases, the claims view keeps the claim in **Received** status. If a claim has been in **Received** status longer than expected, you can run a [claim status check](/healthcare/check-claim-status) to determine its processing status with the payer. You can also contact Stedi support with questions about behavior for particular payers. #### Who rejected the claim [#who-rejected-the-claim] Stedi and the payer can both reject a claim. For claims in **Rejected** status, the claims view shows a **by Stedi** or **by payer** label next to the status: - **by Stedi**: Stedi rejected the claim before sending it to the payer. - **by payer**: The payer rejected the claim before the start of adjudication. This can happen even when the payer has acknowledged receipt. This label appears next to the status on the claim's **Overview** panel. Only rejections show this label. The claim's timeline also shows the 277CA that contains the rejection. The **Acknowledgment** card's **From** field shows who sent it, such as the payer's name followed by **(Payer)**. To filter by who rejected the claim, expand **Rejected** in the [**Status** filter](#filter-claims) and select **By payer** or **By Stedi**. ### How we determine status [#how-we-determine-status] Once you submit a claim, you'll receive several [277CA claim acknowledgments](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) from the clearinghouse and the payer that indicate receipt, acceptance, or rejection at various stages of processing. You may also receive [835 Electronic Remittance Advice (ERAs)](/healthcare/claim-responses-overview#835-electronic-remittance-advice-era) with payment information after the payer completes adjudication. Stedi uses the information in 277CAs and 835 ERAs to determine the current status of a claim. #### Step 1: Check for 835 ERA [#step-1-check-for-835-era] If Stedi has received an 835 ERA with claim payment information for the claim, we use the `CLP02` (Claim Status Code) element in the 835 transaction to determine the claim's status. [Full code list](/healthcare/claims-code-lists#claim-status-code) - **Processed:** The payer completed adjudication and acknowledged responsibility for the claim. - **Denied:** The payer completed adjudication and denied responsibility for the claim. - **Unknown:** The ERA contains mixed or incomplete status information that prevents Stedi from determining a clear status. If we haven't received any claim payment information for the claim, we proceed to evaluate 277CA claim acknowledgments. #### Step 2: Classify each 277CA [#step-2-classify-each-277ca] We assign each 277CA transaction a submission status based on the `STC01-1` (Health Care Claim Status Category Code) status category codes present in the transaction. [Full code list](https://x12.org/codes/claim-status-category-codes) When there are multiple codes present within a 277CA, we evaluate codes in the following priority order: 1. Rejected 2. Accepted 3. Received 4. Unknown (unrecognized STC codes) For example, if a 277CA contains both rejected and received status category codes, we classify the 277CA as rejected. #### Step 3: Decide which 277CA reflects the claim's status [#step-3-decide-which-277ca-reflects-the-claims-status] Each claim can receive multiple 277CAs from Stedi and the payer as it moves through the processing pipeline. Once we evaluate the status of all existing 277CAs for a claim, we apply the following rules to determine which 277CA reflects the claim's overall status: 1. **Current submission:** We focus on the 277CAs tied to the most-recent 837 submission. If there are no 277CAs for the most recent submission, the claim's status is set to **Submitted**. 2. **Terminal outcomes:** We prioritize by Rejected --> Accepted --> Received. For example, if any 277CA from Stedi or the payer has a rejected status, we use the 277CA rejection to set the claim status, even if there are other 277CAs with accepted codes. This helps ensure you don't miss required actions to correct and resubmit a rejected claim. 3. **Payer > Clearinghouse:** We prioritize 277CAs from the payer over 277CAs from Stedi or intermediaries. For example, if a claim has a Stedi 277CA with received status codes and a payer 277CA with received status codes, we use the payer's 277CA to set the overall claim status to **Received**. 4. **Recency:** We use recency as a final tiebreaker to ensure deterministic results. If a claim has multiple 277CAs from the same source with the same status category codes, we first check the effective date listed in the EDI transaction and use the most recent one. If those are the same, we'll use the 277CA that most recently entered Stedi's system. #### Examples [#examples] The following scenarios illustrate how we use the above rules to determine a claim's status when there are multiple 277CAs. **Scenario 1** You submit a claim to Stedi and receive the following 277CAs: | Source | Status classification | Effective date | |-------|-----------------------|----------------| | Stedi | Received | 2026-01-01 | | Payer | Accepted | 2026-01-02 | The claim's status would be set to **Accepted** based on the accepted status category codes in the payer's 277CA. **Scenario 2** You submit a claim to Stedi and receive the following 277CAs: | Source | Status classification | Effective date | |-------|-----------------------|----------------| | Payer| Rejected | 2026-01-01 | | Payer | Received | 2026-01-02 | This scenario can happen when a payer sends responses out-of-order due to network delays, outage recovery, retries, or batch processes. In this case, the claim's status would be set to **Rejected** because we prioritize terminal statuses over the timing of the responses. ### Reversals [#reversals] Stedi tracks reversals separately from claim status because the **Processed**, **Denied**, and **Unknown** statuses can include payment reversals. When you receive a claim payment information record with `Loop 2100 CLP02` (Claim Status Code) set to `22` (Reversal of Previous Payment), Stedi flags the associated claim as one with reversals. You can [filter for claims with reversals](#filter-claims) in the claims view to facilitate payment reconciliation workflows. # CMS-1500 Claim Form PDF Source: https://www.stedi.com/docs/healthcare/cms-1500-claim-form-pdf Stedi automatically generates a [CMS-1500 Claim Form](https://www.nucc.org/index.php/1500-claim-form-mainmenu-35) PDF for each professional claim you submit. We strongly recommend reviewing the following behavior and recommendations if you plan to send these PDFs to payers or retain them for your records. ## Retrieve PDFs [#retrieve-pdfs] You can retrieve PDFs manually through claims view in the Stedi portal or programmatically through the API. ### Claims view [#claims-view] You can download a PDF version of professional claims in the CMS-1500 format from both the timeline view and the claim's detail page. 1. From the [claims view](https://portal.stedi.com/app/healthcare/claims), click a professional claim to open its timeline. 2. Do one of the following: - From the timeline view, hover over the claim and click **Download CMS-1500 claim PDF**. - Open the claim's detail page and click **Download CMS-1500 claim PDF**. 3. In the download menu, choose whether to **Include CMS-1500 form background**. This option is checked by default. The National Uniform Claim Committee (NUCC) and CMS provide exact specifications for blank CMS-1500 forms, including paper size and ink color. Many provider offices are accustomed to using these pre-printed forms, and their Practice Management System (PMS) applications are designed to print claim data onto them. Generating PDFs with no background allows you to print the claim data directly onto official pre-printed forms. 4. Click **Confirm download**. The PDF downloads to your computer. ### API [#api] You can retrieve PDFs programmatically through either of the following endpoints: - [CMS-1500 PDF: Business Identifier](/healthcare/api-reference/get-pdf-1500-business-identifier): Retrieve PDFs through a claim's business identifier. You can find the business identifier value in the `claimReference.correlationId` property Stedi returns in the synchronous claim submission response. - [CMS-1500 PDF: Transaction ID](/healthcare/api-reference/get-pdf-1500): Retrieve PDFs through the `transactionId` Stedi assigns to the processed claim. Stedi includes this ID in the transaction processed event for the claim, which you can receive automatically through [event destinations](/healthcare/event-destinations-configure). Both endpoints return a base64 encoded string of the PDF. To render the PDF, you must decode the base64 string and save it to a file with a `.pdf` extension. ## Generation notes [#generation-notes] Note the following behavior and recommendations to generate optimal CMS-1500 PDFs. ### PDF background [#pdf-background] You can generate CMS-1500 PDFs with a white background by adding the query parameter `?background=false` when calling the PDF generation endpoints. The National Uniform Claim Committee (NUCC) and CMS provide exact specifications for blank CMS-1500 forms, including paper size and ink color. Many provider offices are accustomed to using these pre-printed forms, and their Practice Management System (PMS) applications are designed to print claim data onto them. Generating PDFs with a white background allows you to print the claim data directly onto official pre-printed forms. ### The PDF may truncate claim data. [#the-pdf-may-truncate-claim-data] The maximum length for many fields in the CMS-1500 Claim Form is less than the maximum length for the corresponding properties in the claim request. **Recommendation:** Ensure that your claim data is within the maximum length for claim form fields. We especially recommend using [USPS abbreviations](https://pe.usps.com/text/pub28/28apc_002.htm) to avoid truncated addresses in the generated PDF. ### The PDF may omit the second line of some addresses. [#the-pdf-may-omit-the-second-line-of-some-addresses] Some CMS-1500 Claim Form items contain address fields that can only be mapped to a single address line. If you include the `address2` JSON property (X12 EDI `N302`) in your claim submission, that information may not appear in the PDF. **Recommendation:** Put all street address line data into the `address1` JSON property (X12 EDI `N301`), ensuring that you adhere to the claim form length constraints. ### The PDF won't populate Item 7 when the patient is a dependent. [#the-pdf-wont-populate-item-7-when-the-patient-is-a-dependent] Stedi validates the claim data you submit to the API and uses it to generate a compliant X12 EDI transaction to send to the payer. The PDF is generated from the final X12 EDI transaction. The X12 EDI standard specifies that claims should only contain the insured's address when the patient is the subscriber. To maintain compliance, Stedi doesn't include the insured's address information in the generated X12 EDI transaction when the patient is a dependent, even if you provided the subscriber's address in the original API request. Since this address information isn't present in final X12 EDI claim, it's also not added to Item 7 (Insured's Address) in the generated PDF. ### Payer address (Carrier Block) [#payer-address-carrier-block] You can populate the payer's address on the PDF by providing the `payerAddress` object in your claim submission API request. Include the payer's address details that you want to appear on the form. ### Standard form size [#standard-form-size] The generated PDFs use the standard 8.5" x 11" format. ## Edit PDFs [#edit-pdfs] PDFs are editable so you can make any necessary adjustments before printing and sending them to payers. You can use any PDF editor to make changes to the generated CMS-1500 PDF. ## Print PDFs [#print-pdfs] Note the following behavior and recommendations when printing CMS-1500 PDFs. - We recommend generating PDFs with a white background (no red form overlay) if you plan to print them on pre-printed claim forms. - The form boxes and labels **must** be printed in red ink and the item values **must** be printed in black ink for the claim form to be read by a scanner. Your vendor may choose not to process claim forms that don't conform to these specifications. - Set the **Page Size & Handling** option to **Actual size** or the equivalent in your PDF reader application. The **Fit** option may cause the contents to be scaled down to fit within the printable area, causing the form fields to be misaligned when printed. - Don't print forms from the Apple Preview app built in to macOS. There appear to be problems with field alignment and fonts. Instead, we recommend using either Adobe Acrobat or Google Chrome. ### Printer models [#printer-models] We generally recommend using business laser printers to print CMS-1500 PDFs. However, due to mechanical variations between printer models, we can't guarantee that the generated PDFs will align perfectly with pre-printed forms. You should always test the alignment with your printer before using the generated PDFs for official submissions. You may not get acceptable results when using inkjet printer models because the file contents can extend beyond the normal printable area. If you do plan to use an inkjet printer, don't enable a **borderless** option because this may cause the printer (or printer driver) to slightly magnify the page image regardless of other print settings. This behavior can crop form edges and cause form fields to appear in the wrong positions. Some inkjet printers have a manual setting to change the extension amount, but this isn't always available and may not give consistent results. # Interpret COB response Source: https://www.stedi.com/docs/healthcare/cob-response Interpret a coordination of benefits (COB) check response, including COB status and payer primacy. The coordination of benefits (COB) response includes information about the patient's active health plans, subscriber information, and coordination of benefits. Unlike standard eligibility checks, the COB response shape is standardized across all supported payers. There are no payer-specific variations in what information is included or how the response is structured. COB check results may be partial or negative and may fail to include some or all of a patient's health plans. Results depend on whether the patient's payers contribute to the COB database. ## COB status [#cob-status] The `coordinationOfBenefits` object contains status information about whether a COB instance exists and whether Stedi was able to determine the primary payer. {/* schema:COB:unwrap */} ```json "coordinationOfBenefits": { "classification": "CobInstanceExistsPrimacyDetermined", "instanceExists": true, "primacyDetermined": true, "coverageOverlap": true, "benefitOverlap": true } ``` A COB check response can have one of the following statuses, indicated by the `coordinationOfBenefits.classification` property. {/* prettier-ignore-start */} |status | Description | |---|---| | `MemberFoundNoCob`| The patient has coverage with the payer you checked, but Stedi didn't find any other health plans with overlapping coverage. Note that Stedi can only report information for other COB-supported health plans from our payer list. For example, if the individual has coverage from Cigna and Medicare, a COB check to Cigna will state that no COB was detected, since Medicare is not a supported payer. You can find a complete list of supported payers for COB checks in the [Payer Network](https://www.stedi.com/healthcare/network?filter=eyJ0cmFuc2FjdGlvblR5cGVzIjpbIkNPQiJdLCJjb3ZlcmFnZVR5cGVzIjpbXSwib3BlcmF0aW5nU3RhdGVzIjpbXSwicHJvZ3JhbXMiOltdfQ%3D%3D). | `CoverageOverlapNoBenefitOverlap` | The patient has overlapping coverage with at least one other health plan, but there is no benefit overlap between the plans. Coordination of benefits is not required.| | `CoverageOverlapExistsNotSubjectToCob`| The patient has overlapping coverage with at least one other health plan, but coordination of benefits is not required. | | `CobInstanceExistsPrimacyUndetermined`| The patient has overlapping coverage with at least one other health plan and coordination of benefits is required. However, Stedi could not determine the primary payer. We recommend contacting the patient's health plans for further guidance. | | `CobInstanceExistsPrimacyDetermined` | The patient has overlapping coverage with at least one other health plan, and Stedi was able to identify the primary payer. | {/* prettier-ignore-end */} ## Payer primacy [#payer-primacy] The response includes a `benefitsInformation` object with `code` = `R` when Stedi finds overlapping coverage with another health plan. The `benefitsInformation[].benefitsRelatedEntities` array contains information about the other payer, and the `entityIdentifier` property indicates the payer's primacy for payment on claims when this information is available. It can be set to: - `Payer`: Stedi didn't find a COB instance or could not determine primacy. - `Primary Payer`: This payer is the primary payer for the service type. - `Secondary Payer`: This payer is the secondary payer for the service type. - `Tertiary Payer`: This payer is the tertiary payer for the service type. In the following example, the patient has overlapping coverage for medical care services with Cigna, the primary payer for medical care services. {/* schema:COBBenefitsInformation */} ```json { "code": "R", "name": "Other or Additional Payor", "serviceTypeCodes": ["1"], "serviceTypes": ["Medical Care"], "benefitsDateInformation": { "coordinationOfBenefits": "2024-07-01" }, "benefitsRelatedEntities": [ { "entityIdentifier": "Primary Payer", "entityName": "CIGNA", "entityIdentification": "PI", "entityIdentificationValue": "1006" }, { "entityIdentifier": "Insured or Subscriber", "entityFirstname": "JOHN", "entityMiddlename": "X", "entityIdentification": "MI", "entityIdentificationValue": "00000000000", "entityLastname": "DOE" } ], "subscriber": { "dateOfBirth": "2002-12-31" } } ``` When Stedi can't reliably determine primacy, you should contact the patient's health plans directly for further guidance. ### Primacy rules [#primacy-rules] COB doesn't support Medicare plans, so they're not included in the primacy determination process. However, we support many Medicare Advantage plans, which will be included in primacy determination. Our COB service follows the guidelines set by the [National Association of Insurance Commissioners (NAIC)](https://content.naic.org/) to determine payer primacy. You may also want to refer to these guidelines when submitting claims. #### Plan responsibilities [#plan-responsibilities] In almost all cases, the **primary** plan pays benefits first as if no other plan exists. The one exception to this policy is when the patient has both an HMO (closed network plan) and a PPO (open network plan). When the HMO is the primary plan and the PPO is secondary, the PPO will pay first when the patient uses out-of-network providers unless it's an emergency or an authorized referral covered by the HMO. When multiple policies are treated as a single plan, the primacy determination applies to the entire plan. The plans must coordinate amongst themselves according to their contracts. If more than one insurance company provides benefits under the plan, the one designated as primary is responsible for complying with coordination of benefits rules. #### Order of benefits rules [#order-of-benefits-rules] After the primary plan pays, each subsequent plan pays remaining eligible costs. Each health plan determines their order of benefits using the first of the following rules that apply: **1. Non-Dependent vs. Dependent vs. Medicare** - A plan covering the patient as an employee, subscriber, or retiree is primary over a plan that covers them as a dependent. - If the patient also has Medicare, special rules apply: - Medicare is secondary to a plan covering the person as a dependent. - Medicare is primary to a plan covering the person as an employee (from an employer with more than 20 employees), subscriber, or retiree. - If the patient has all three plan types, the order of primacy is: Medicare, then the plan covering the person as a dependent, and then any other plans. **2. Dependent child with multiple plans** Note that the following rules are the same regardless of whether the subscribers of the multiple plans are the child's parents or other significant individuals in their life (not their parents). - If the two subscribers are married or living together: The subscriber with the birthday that occurs first in the calendar year has the primary plan. If both subscribers have the same birthday, the plan that has covered the child the longest is primary. - If the dependent child's coverage under the spouse's plan began on the same date as their coverage under either or both parents' plans, the order of benefits will be determined using the birthday rule. - If the two subscribers are divorced, separated, or not living together, a court order typically decides which plan is primary. Otherwise: - The plan of the custodial parent is primary. - The plan of the spouse of the custodial parent is secondary. - The plan of the non-custodial parent is tertiary. - The plan of the spouse of the non-custodial parent is last. - If a dependent child has coverage under either or both parents' plans and is also covered as a dependent under a spouse's plan, apply rule 5 - Length of coverage. **3. Active vs. retired employees** Coverage from a current employer (active employee) is primary to retired or laid-off employee plans. **4. COBRA vs. state continuation coverage** Employer-based plans are primary to COBRA coverage. **5. Length of coverage** If other rules don't decide, the plan covering the person for the longest time is primary. **6. Final rule (If no other rules apply)** If no clear primary plan is determined, costs are split equally between the plans. ## Sample response interpretation [#sample-response-interpretation] The following example COB response shows information for a dependent who is covered by multiple health plans through their parents' policies. The COB check was submitted to Aetna with a service type code of `30` and a date of service of `2024-11-27`. The response indicates the following: - **Active coverage:** The patient has active coverage with Aetna for medical care services, pharmacy services, and vision services. This is indicated by the three objects in the `benefitsInformation` array with the `code` set to `1`. - **Coverage overlap:** The patient has overlapping coverage for medical care services between two health plans. This is indicated by the `benefitsInformation` object with the `code` set to `R`. - **Primacy:** The other health plan is Cigna, listed in `benefitsInformation[].benefitsRelatedEntities`. Cigna is the primary payer for medical care services. Note that the ID returned in this property is proprietary to our COB check product, so you can't use it as the Payer ID for eligibility checks or other API requests to Stedi. It likely doesn't match the Payer IDs listed in the [Payer Network](https://www.stedi.com/healthcare/network). - **COB instance:** There is a COB instance for medical care services on the date of service provided in the request. This is indicated in the `coordinationOfBenefits` object. Based on this response, you must send claims first to Cigna as the primary payer for medical care services. Once Cigna adjudicates the claim, you can send another one, if necessary, to Aetna as the secondary payer (subject to specific payer claims processing rules). Before sending claims we'd also recommend sending a separate eligibility check to Aetna to verify coverage status. {/* schema:CoordinationOfBenefitsResponseContent */} ```json { "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["1"], "serviceTypes": ["Medical Care"], "benefitsDateInformation": { "benefitBegin": "2023-03-01" }, "subscriber": { "dateOfBirth": "2002-02-27" } }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["88"], "serviceTypes": ["Pharmacy"], "benefitsDateInformation": { "benefitBegin": "2023-03-01" }, "subscriber": { "dateOfBirth": "2002-02-27" } }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["AL"], "serviceTypes": ["Vision (Optometry)"], "benefitsDateInformation": { "benefitBegin": "2023-03-01" }, "subscriber": { "dateOfBirth": "2002-02-27" } }, { "code": "R", "name": "Other or Additional Payor", "serviceTypeCodes": ["1"], "serviceTypes": ["Medical Care"], "benefitsDateInformation": { "coordinationOfBenefits": "2024-07-01" }, "benefitsRelatedEntities": [ { "entityIdentifier": "Primary Payer", "entityName": "CIGNA", "entityIdentification": "PI", "entityIdentificationValue": "1006" }, { "entityIdentifier": "Insured or Subscriber", "entityFirstname": "JOHN", "entityMiddlename": "X", "entityIdentification": "MI", "entityIdentificationValue": "00000000000", "entityLastname": "DOE" } ], "subscriber": { "dateOfBirth": "2002-12-31" } } ], "coordinationOfBenefits": { "classification": "CobInstanceExistsPrimacyDetermined", "instanceExists": true, "primacyDetermined": true, "coverageOverlap": true, "benefitOverlap": true }, "dependent": { "firstName": "JORDAN", "lastName": "DOE", "gender": "M", "dateOfBirth": "2002-12-31", "relationToSubscriber": "Child", "relationToSubscriberCode": "19", "address": { "address1": "1 MAIN ST.", "city": "NEW YORK", "state": "NY", "postalCode": "10000" } }, "errors": [], "meta": { "applicationMode": "production", "traceId": "01JDQFT4W3KTWZNTADEZ55BFFX", "outboundTraceId": "01JDQFT4W3KTWZNTADEZ55BFFX" }, "payer": { "name": "Aetna", "payerIdentification": "AETNA-USH" }, "provider": { "providerOrgName": "AETNA-USH", "npi": "1999999984" }, "subscriber": { "memberId": "W000000000", "firstName": "JOHN", "lastName": "DOE", "address": { "address1": "1 MAIN ST.", "city": "NEW YORK", "state": "NY", "postalCode": "10000" } } } ``` ## Request and response examples [#request-and-response-examples] The following examples show request and response data for common COB scenarios. ### COB exists, primacy determined [#cob-exists-primacy-determined] In the following example, the COB check was submitted to Cigna with a service type code of `30` and a date of service of `2024-12-19`. The response indicates that the patient has active coverage with Cigna for medical care services, and that there is overlapping coverage with Kaiser Foundation Health Plan of Massachusetts. COB is required for medical care services, and Kaiser is the primary payer. {/* schema:CoordinationOfBenefitsRequestContent */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "test": false, "tradingPartnerServiceId": "62308", "provider": { "organizationName": "PPROVIDER", "npi": "1999999984" }, "subscriber": { "memberId": "X999999999", "firstName": "Goofy", "lastName": "Goof", "dateOfBirth": "1948-11-01" }, "encounter": { "dateOfService": "2024-12-19", "serviceTypeCode": "30" } }' ``` {/* schema:CoordinationOfBenefitsResponseContent */} ```json { "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["1"], "serviceTypes": ["Medical Care"], "benefitsDateInformation": { "benefitBegin": "2024-01-01" }, "subscriber": { "dateOfBirth": "1948-11-01" } }, { "code": "R", "name": "Other or Additional Payor", "serviceTypeCodes": ["1"], "serviceTypes": ["Medical Care"], "benefitsDateInformation": { "coordinationOfBenefits": "2024-01-01" }, "benefitsRelatedEntities": [ { "entityIdentifier": "Primary Payer", "entityName": "KAISER FOUNDATION HEALTH PLAN OF MAS", "entityIdentification": "PI", "entityIdentificationValue": "1009" }, { "entityIdentifier": "Insured or Subscriber", "entityFirstname": "GOOFY", "entityMiddlename": "X", "entityIdentification": "MI", "entityIdentificationValue": "999999999", "entityLastname": "GOOF" } ], "subscriber": { "dateOfBirth": "1948-11-01" } } ], "coordinationOfBenefits": { "classification": "CobInstanceExistsPrimacyDetermined", "instanceExists": true, "primacyDetermined": true, "coverageOverlap": true, "benefitOverlap": true }, "dependent": { "firstName": "GOOFY", "lastName": "GOOF", "gender": "M", "dateOfBirth": "1948-11-01", "relationToSubscriber": "Spouse", "relationToSubscriberCode": "01", "address": { "address1": "3 DISNEY RD", "city": "ORLANDO", "state": "FL", "postalCode": "32801" } }, "errors": [], "meta": { "applicationMode": "production", "traceId": "01JJQRFYSXPKNYQ96EVM7XDXC4", "outboundTraceId": "01JJQRFYSXPKNYQ96EVM7XDXC4" }, "payer": { "name": "CIGNA", "payerIdentification": "CIGNA-HCIN" }, "provider": { "providerOrgName": "PROVIDER", "npi": "1999999984" }, "subscriber": { "memberId": "X99999999", "firstName": "MRS", "lastName": "GOOF", "groupNumber": "12345678", "address": { "address1": "3 DISNEY RD", "city": "ORLANDO", "state": "FL", "postalCode": "32801" } } } ``` ### Coverage overlap, no benefit overlap [#coverage-overlap-no-benefit-overlap] In the following example, the COB check was submitted to Cigna with a service type code of `30` and a date of service of `2025-01-01`. The response indicates that the patient has active coverage with Cigna for medical care services, and that there is overlapping coverage with Aetna for dental care services. There is no benefit overlap between the two health plans because dental and medical benefits have two different service type codes. COB is not required. {/* schema:CoordinationOfBenefitsRequestContent */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "test": false, "tradingPartnerServiceId": "62308", "provider": { "organizationName": "PROVIDER", "npi": "1999999984" }, "subscriber": { "memberId": "X999999999", "firstName": "MICKEY", "lastName": "MOUSE", "dateOfBirth": "1928-11-28" }, "encounter": { "dateOfService": "2025-01-01", "serviceTypeCode": "30" } }' ``` ```json { "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["1"], "serviceTypes": ["Medical Care"], "benefitsDateInformation": { "benefitBegin": "2024-10-03" }, "subscriber": { "dateOfBirth": "1925-11-28" }, "dependent": { "firstName": "MICKEY", "lastName": "MOUSE", "memberId": "X999999999", "dateOfBirth": "1928-11-28", "familySeqNum": "0003", "relationToSubscriber": "Spouse", "relationToSubscriberCode": "01" } }, { "code": "R", "name": "Other or Additional Payor", "serviceTypeCodes": ["35"], "serviceTypes": ["Dental Care"], "benefitsDateInformation": { "periodStart": "2024-10-03" }, "benefitsRelatedEntities": [ { "entityIdentifier": "Payer", "entityName": "AETNA", "entityIdentification": "PI", "entityIdentificationValue": "1000" }, { "entityIdentifier": "Insured or Subscriber", "entityFirstname": "MINNIE", "entityMiddlename": "X", "entityIdentification": "MI", "entityIdentificationValue": "X999999999", "entityLastname": "MOUSE" } ], "subscriber": { "dateOfBirth": "1925-11-28" }, "dependent": { "firstName": "MICKEY", "lastName": "MOUSE", "memberId": "X999999999", "dateOfBirth": "1928-11-28", "familySeqNum": "0003", "relationToSubscriber": "Spouse", "relationToSubscriberCode": "01" } } ], "coordinationOfBenefits": { "classification": "CoverageOverlapNoBenefitOverlap", "instanceExists": true, "coverageOverlap": true, "benefitOverlap": false, "primacyDetermined": false }, "dependent": { "firstName": "MICKEY", "lastName": "MOUSE", "gender": "M", "dateOfBirth": "1928-11-28", "relationToSubscriber": "Spouse", "relationToSubscriberCode": "01", "address": { "address1": "3 DISNEY RD", "city": "ORLANDO", "state": "FL", "postalCode": "32801" } }, "errors": [], "meta": { "applicationMode": "production", "traceId": "01JJVW6QJWXESXYAAAE4H996HR", "outboundTraceId": "01JJVW6QJWXESXYAAAE4H996HR" }, "payer": { "name": "CIGNA", "payerIdentification": "CIGNA-HCIN" }, "provider": { "providerOrgName": "PROVIDER", "npi": "1999999984" }, "subscriber": { "memberId": "X99999999", "firstName": "MINNIE", "lastName": "MOUSE", "middleName": "X", "groupNumber": "3340181", "address": { "address1": "3 DISNEY RD", "city": "ORLANDO", "state": "FL", "postalCode": "32801" } } } ``` ### Member found, no COB [#member-found-no-cob] In the following example, the COB check was submitted to UnitedHealthcare with a service type code of `30` and a date of service of `2023-01-10`. The response indicates that the patient has active coverage with UnitedHealthcare for medical care services, but there is no overlapping coverage with any other health plan. {/* schema:CoordinationOfBenefitsRequestContent */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "test": false, "tradingPartnerServiceId": "87726", "provider": { "organizationName": "PROVIDER", "npi": "1999999984" }, "subscriber": { "memberId": "999999999", "firstName": "Donald", "lastName": "Duck", "dateOfBirth": "1960-01-01" }, "dependent": { "firstName": "Huey", "lastName": "Duck", "dateOfBirth": "1990-01-01" }, "encounter": { "dateOfService": "2023-01-10", "serviceTypeCode": "30" } }' ``` {/* schema:CoordinationOfBenefitsResponseContent */} ```json { "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["1"], "serviceTypes": ["Medical Care"], "benefitsDateInformation": { "benefitBegin": "2024-01-01" } } ], "coordinationOfBenefits": { "classification": "MemberFoundNoCob", "instanceExists": false, "coverageOverlap": false, "benefitOverlap": false, "primacyDetermined": false }, "dependent": { "firstName": "HUEY", "lastName": "DUCK", "middleName": "M", "gender": "F", "dateOfBirth": "1990-01-01", "relationToSubscriber": "Child", "relationToSubscriberCode": "19", "address": { "address1": "25 THE ROAD", "city": "READING", "state": "MA", "postalCode": "01867" } }, "errors": [], "meta": { "applicationMode": "production", "traceId": "09JJSWD8RBGZMVCCYGQZS3P1F7", "outboundTraceId": "09JJSWD8RBGZMVCCYGQZS3P1F7" }, "payer": { "name": "UnitedHealthcare", "payerIdentification": "UHC" }, "provider": { "providerOrgName": "PROVIDER", "npi": "1999999984" }, "subscriber": { "memberId": "999999999", "firstName": "DONALD", "lastName": "DUCK", "middleName": "X", "address": { "address1": "25 THE ROAD", "city": "READING", "state": "MA", "postalCode": "01867" } } } ``` ## Follow up with eligibility checks [#follow-up-with-eligibility-checks] Our COB data is updated weekly, and the response doesn't contain complete details about the patient's coverage with each health plan. When Stedi finds overlapping coverage, we strongly recommend conducting follow-up [eligibility checks](/healthcare/send-eligibility-checks) with each payer to verify coverage status and retrieve the patient's complete, up-to-date benefits information. # COB troubleshooting Source: https://www.stedi.com/docs/healthcare/cob-troubleshooting Find causes and fixes for common coordination of benefits (COB) check errors. A list of potential errors and possible resolutions when submitting coordination of benefits (COB) checks. ## Inaccurate patient data [#inaccurate-patient-data] COB checks are significantly more sensitive to data accuracy than eligibility checks. To perform successful COB checks, the patient information you provide in the check **must** match the payer's data exactly. For example, if a payer has a patient's name stored as "Jonathan Doe", they may return benefits information when you submit an eligibility check for "Jon Doe", as long as they can identify the patient through the other information provided. However, a COB request for "Jon Doe" will fail because the name doesn't match the payer's records exactly. To avoid unnecessary COB check failures, we strongly recommend that you first submit an eligibility check request for the patient. Then use the patient's first name, last name, date of birth, and member ID from the successful eligibility response to build the COB request. ## Invalid or unsupported payer ID [#invalid-or-unsupported-payer-id] COB requests require a valid payer ID in the `tradingPartnerServiceId` property. Visit the Stedi [Payer Network](https://www.stedi.com/healthcare/network?filter=eyJ0cmFuc2FjdGlvblR5cGVzIjpbIkNPQiJdLCJjb3ZlcmFnZVR5cGVzIjpbXSwib3BlcmF0aW5nU3RhdGVzIjpbXSwicHJvZ3JhbXMiOltdfQ%3D%3D) for a complete list of supported payers and their payer IDs. You should also ensure that you're sending the request to the correct payer entity. For example, Blue Cross Blue Shield (BCBS) has multiple entities that operate in different states. If you send a request to the wrong entity, the request will fail with an `AAA` = `75` error (Subscriber/Insured Not Found). ## Missing data [#missing-data] COB requests must contain the patient's `firstName`, `lastName`, `dateOfBirth`, plus `memberId` and/or `ssn`. If you do not send all data points, Stedi returns an HTTP `400` error with a message listing the missing data. {/* schema:ValidationExceptionResponseContent */} ```json { "fieldList": [ { "path": "/subscriber/dateOfBirth", "message": "Value at '/subscriber/dateOfBirth' failed to satisfy constraint: Member must not be null" } ], "message": "1 validation error detected. Value at '/subscriber/dateOfBirth' failed to satisfy constraint: Member must not be null" } ``` ## Request found multiple patients [#request-found-multiple-patients] The `Duplicate Subscriber/Insured ID Number` error can occur when Stedi finds more than one member ID for the patient in the request. For example, this could occur if you only provide the patient's Social Security Number (SSN), and the search returns more than one member ID associated with that SSN. In this case, Stedi returns a HTTP `200` response with an `AAA` error in the `subscriber` object. {/* schema:COBResponseSubscriber:unwrap */} ```json "subscriber": { "memberId": "123456789", "firstName": "John", "lastName": "Doe", "dateOfBirth": "1961-10-21", "aaaErrors": [ { "field": "AAA", "code": "76", "description": "Duplicate Subscriber/Insured ID Number", "followupAction": "Please Correct and Resubmit", "location": "Loop 2100C", "possibleResolutions": "Duplicate member ID was found in the payer database." } ] } ``` ## Member not found [#member-not-found] If Stedi cannot find a member ID for the patient in the request, it returns an HTTP `200` response with an `AAA` error in the `subscriber` object. {/* schema:COBResponseSubscriber:unwrap */} ```json "subscriber": { "memberId": "123456789", "firstName": "John", "lastName": "Doe", "dateOfBirth": "1961-10-21", "aaaErrors": [ { "field": "AAA", "code": "75", "description": "Subscriber/Insured Not Found", "followupAction": "Please Correct and Resubmit", "location": "Loop 2100C", "possibleResolutions": "- Subscriber was not found." } ] } ``` Mismatches in the `memberId` are one of the most common causes of `Subscriber/Insured Not Found` errors. We strongly recommend first performing an eligibility check and using the `memberId` in the response to populate your COB check. You also receive a `Subscriber/Insured Not Found` error if you try to submit a COB check to a Medicare plan. Stedi doesn't support Medicare plans for COB checks, though we support many Medicare Advantage plans. ## Invalid service dates [#invalid-service-dates] The service dates you provide **must** be within the past 2 years. COB checks don't support requests with dates outside of this range. Don't send service dates that are in the future. Future service dates typically result in errors from the payer. ## Inactive coverage [#inactive-coverage] For COB checks to return a positive result, the patient must have active coverage. Sometimes, you can receive a false negative or error on a COB check when a patient's coverage has very recently changed. For example, if the patient recently became eligible for coverage within the last few days, that information may not yet be reflected in the COB member data, and you will receive a `Subscriber/Insured Not Found` error. Payers typically update COB member data on a weekly basis. If you receive an error and the patient's coverage has recently changed, we recommend trying again next week to give the changes time to propagate to the COB database. ## AAA errors [#aaa-errors] The COB response may contain one or more `AAA` errors specify issues with your request and any recommended follow-up actions. Stedi includes this information in the `aaaErrors` object in the response JSON. `AAA` errors can be present at multiple different levels in the response, depending on the type. In the COB response, the `subscriber`, `dependent`, and `provider` objects can each contain their own `aaaErrors` array. Common causes for AAA errors include: - Missing or incorrect information for the subscriber, dependent, provider, or payer. In this case, you should correct any errors before resubmitting. - Issues with payer enrollment. Many of these issues require that the provider contact the payer directly to resolve, due to PHI/HIPAA guidelines. Each error contains a code field that corresponds to a `followupAction`: {/* X12 follow-up action code descriptions keep their spec semicolons. */} {/* vale Stedi.Semicolons = NO */} - `C` - Please correct and resubmit - `N` - Resubmission not allowed | Note that this code doesn't mean you should never resubmit the request. Intermediary clearinghouses may send this code when they have temporarily lost connection to the payer, so this code indicates that you should wait at least a few minutes before retrying instead of retrying immediately. - `P` - Please resubmit original transaction - `R` - Resubmission allowed - `S` - Do not resubmit; Inquire initiated to a third party - `Y` - Do not resubmit; We will hold your request and respond again shortly {/* vale Stedi.Semicolons = YES */} # Configure webhooks Source: https://www.stedi.com/docs/healthcare/configure-webhooks-legacy Webhooks are a legacy feature. We'll continue to support them, and you can keep using them in production. However, we recommend migrating to [event destinations](/healthcare/event-destinations-configure), which offer improved reliability, automatic retries, and delivery monitoring. For new integrations, default to event destinations. You can set up webhooks that automatically send claim processing events to your endpoint. These events contain the information you need to retrieve 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA) responses through Stedi APIs. They can also help you monitor your claims pipeline when you're submitting claims through [Stedi SFTP](/healthcare/submit-claims-sftp-connection). You can either create a single webhook that forwards events from all transactions, or create a separate webhook for each transaction type. Configuring a webhook involves: - Creating a [credential set](#credential-set) for authentication to the endpoint. - Creating a [webhook](#webhook) that specifies the URL where Stedi should deliver events. - Adding one or more [event bindings](#event-bindings) that trigger the webhook. ## Credential set [#credential-set] A credential set defines how to authenticate with a specific API. You can use a single credential set across multiple webhooks. Stedi supports the following types of configurations. | Type | Description | | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | | API Keys | The API keys as headers in the request. The most common version is 'bearer tokens'. | | Basic Auth | [HTTP Basic Auth](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Authentication), where you provide a username and password. | | None | For endpoints that don't require any authentication. | ### Unauthenticated endpoints [#unauthenticated-endpoints] When using the 'None' credential set type in webhooks, it's functionally the same as using 'API Keys'. However, we set a dummy value for `Header name` and `Value` (`x-stedi-noauth` and `dummy`). Since the receiving API isn't authenticating the call, it will ignore these values and accept the request. ### Create credential set [#create-credential-set] You can define a credential set as part of configuring a new webhook. You can also create a new credential set independently and then attach it to one or more webhooks. To create a credential set: 1. Go to the [Webhooks](https://portal.stedi.com/app/settings/webhooks) page in your developer settings. 1. Click **Manage credentials**, and then click **Create credential set**. 1. Enter a name. 1. Choose the appropriate **Authentication type**. 1. Enter the details. 1. Click **Create credential set**. ## Webhook [#webhook] A webhook defines which URL endpoint Stedi should call when the webhook is invoked, and which HTTP method to use (`POST`, `PUT`, `GET`, `PATCH`, `DELETE`). You can only attach one credential set to each webhook. However, you might have multiple webhooks for a single system integration, each with a different endpoint. ### Create webhook [#create-webhook] To create a new webhook: 1. Go to the [Webhooks](https://portal.stedi.com/app/settings/webhooks) page in your developer settings. 1. Click **Create webhook**. 1. Enter a name. 1. Choose a **Method** and enter an **Endpoint** URL. This is where Stedi delivers the events when the webhook is invoked. 1. Select a **Credential set** to use for authentication or create a new one for this endpoint. 1. (Optional) Set the **Concurrency**. You can set the maximum number of deliveries that Stedi will attempt to deliver to the endpoint at one time. This can help you avoid overloading the target service. ## Event bindings [#event-bindings] Event bindings allow you to specify which events trigger the webhook. You can create multiple event bindings for a single webhook. For example, you may want to create an event binding for each type of transaction you want to send to your API. ### Create event binding [#create-event-binding] To create a new event binding: 1. Go to the [Webhooks page](https://portal.stedi.com/app/settings/webhooks) in your developer settings. 1. Click the webhook. 1. Click the **Event bindings** tab. 1. Click **New event binding**. 1. Choose **Transaction processed** as the **Event type**. 1. (Optional) Set one or more [filters](#event-filters). 1. Click **Create binding**. ### Choosing event types [#choosing-event-types] The recommended event bindings depend on your use case: - **API claim submission:** At a minimum, you should create an event binding for transaction processed events because they contain the information you need to retrieve claim responses from Stedi. You may also want to set up event bindings for file delivered and file failed events. - **SFTP claim submission:** At a minimum, we recommend creating an event binding for transaction processed events filtered to 999s so you receive instant notifications when Stedi rejects claims for validation errors. We also recommend monitoring file failed events, which can include errors that may require retries. You may also want to set up event bindings for transaction processed events for 277CAs and 835 ERAs to receive real-time notifications when these responses are available. The file processed and fragment processed events are not relevant to claims processing. #### Transaction processed events [#transaction-processed-events] Stedi emits a transaction processed event after it successfully receives and translates a payer or intermediary clearinghouse response into JSON. It also emits this event once it successfully translates a JSON claim submission into X12 EDI format for the payer. The event payload contains the information you need to retrieve processed responses through Stedi APIs: - `x12.transactionSetIdentifier` specifies the transaction type (999, 277, or 835). - `transactionId` allows you to retrieve the transaction in JSON format using either the [277CA Report](/healthcare/api-reference/get-healthcare-reports-277) or [835 ERA Report](/healthcare/api-reference/get-healthcare-reports-835) endpoint. - `fileExecutionId` allows you to retrieve the transaction in X12 EDI format through the [Retrieve Execution Input](/healthcare/api-reference/get-execution-input) endpoint. Even if you plan to retrieve claim responses through Stedi SFTP, you may want to monitor these events so you can receive alerts when new claim responses are available. ```json tab="processed 999" { "event": { "version": "0", "id": "a3c7d891-2b4f-1a55-9e72-f8d3c5a9b1e6", "detail-type": "transaction.processed.v2", "source": "stedi.core", "account": "", "time": "2025-07-14T20:15:32Z", "region": "us-east-1", "resources": [ "https://core.us.stedi.com/2023-08-01/transactions/7a2f8c9d-1e3b-4a5c-8d7f-9b6e4c2a1f8d" ], "detail": { "transactionId": "7a2f8c9d-1e3b-4a5c-8d7f-9b6e4c2a1f8d", "direction": "INBOUND", "mode": "test", "fileExecutionId": "3d8f7a5b-9c2e-4f1a-b8d6-e4c9a7f2b1d3", "processedAt": "2025-07-14T20:15:32.421Z", "fragments": null, "artifacts": [ { "artifactType": "application/edi-x12", "usage": "input", "url": "https://core.us.stedi.com/2023-08-01/transactions/7a2f8c9d-1e3b-4a5c-8d7f-9b6e4c2a1f8d/input", "sizeBytes": 542, "model": "transaction" }, { "artifactType": "application/json", "usage": "output", "url": "https://core.us.stedi.com/2023-08-01/transactions/7a2f8c9d-1e3b-4a5c-8d7f-9b6e4c2a1f8d/output", "sizeBytes": 1823, "model": "transaction" } ], "partnership": { "partnershipId": "local-clearinghouse-test", "partnershipType": "x12", "sender": { "profileId": "clearinghouse-test" }, "receiver": { "profileId": "local" } }, "x12": { "transactionSetting": { "guideId": "01HMR0V8N2PHGA8M4ZG1CRHH0", "transactionSettingId": "01HMR1P4N6QJHB9N5AH2DSKKJ1" }, "metadata": { "interchange": { "acknowledgmentRequestedCode": "0", "controlNumber": 123 }, "functionalGroup": { "controlNumber": 456, "release": "005010X231A1", "date": "2025-07-14", "time": "20:15:15", "functionalIdentifierCode": "FA" }, "transaction": { "controlNumber": "0001", "transactionSetIdentifier": "999" }, "receiver": { "applicationCode": "401576130024", "isa": { "qualifier": "ZZ", "id": "401576130024" } }, "sender": { "applicationCode": "STEDITEST", "isa": { "qualifier": "ZZ", "id": "STEDITEST" } } } }, "connectionId": "01J1M5124B2HWMNN91Q3Z6AM61" } } } ``` ```json tab="processed 277CA" { "event": { "version": "0", "id": "f972fb53-653a-1747-ce30-bed15fc04f5c", "detail-type": "transaction.processed.v2", "source": "stedi.core", "account": "", "time": "2024-07-18T16:21:24Z", "region": "us-east-1", "resources": [ "https://core.us.stedi.com/2023-08-01/transactions/f0d3f790-0bc9-432b-93kd-e4b7ece67946" ], "detail": { "transactionId": "f0d4f780-0ec9-432b-93gd-e4b7ece93946", "direction": "INBOUND", "mode": "test", "fileExecutionId": "9f76b485-6hca-43bf-917e-d5b54bec6234", "processedAt": "2024-07-18T16:21:24.658Z", "fragments": null, "artifacts": [ { "artifactType": "application/edi-x12", "usage": "input", "url": "https://core.us.stedi.com/2023-08-01/transactions/f0d9f790-0ec9-431b-93fd-e4h7ece63946/input", "sizeBytes": 1313, "model": "transaction" }, { "artifactType": "application/json", "usage": "output", "url": "https://core.us.stedi.com/2023-08-01/transactions/f0d3f740-0ec9-432b-98fd-e4b7ece63946/output", "sizeBytes": 5602, "model": "transaction" } ], "partnership": { "partnershipId": "local-clearinghouse-test", "partnershipType": "x12", "sender": { "profileId": "clearinghouse-test" }, "receiver": { "profileId": "local" } }, "x12": { "transactionSetting": { "guideId": "01J1M50C1Q44KYDZY8V7R1TPBW", "transactionSettingId": "01J1M50P9623BFE0FFT5Q2BR49" }, "metadata": { "interchange": { "acknowledgmentRequestedCode": "0", "controlNumber": 11 }, "functionalGroup": { "controlNumber": 11, "release": "005010X214", "date": "2024-07-18", "time": "16:20:47", "functionalIdentifierCode": "HN" }, "transaction": { "controlNumber": "1001", "transactionSetIdentifier": "277" }, "receiver": { "applicationCode": "001690149382", "isa": { "qualifier": "ZZ", "id": "001690149382" } }, "sender": { "applicationCode": "STEDITEST", "isa": { "qualifier": "ZZ", "id": "STEDITEST" } } } }, "connectionId": "01J1M5124B2HWMNN91Q3Z6AM61" } } } ``` ```json tab="processed 835 ERA" { "event": { "version": "0", "id": "5d1bcb90-cb0b-1844-5b93-86d5e5b9c4a8", "detail-type": "transaction.processed.v2", "source": "stedi.core", "account": "", "time": "2025-07-14T20:43:39Z", "region": "us-east-1", "resources": [ "https://core.us.stedi.com/2023-08-01/transactions/95e7786c-7066-4494-b83a-b1f300624902" ], "detail": { "transactionId": "95e7786c-7066-4494-b83a-b1f300624902", "direction": "INBOUND", "mode": "test", "fileExecutionId": "5d30f0a0-63af-4aeb-b96c-353b4b25c99a", "processedAt": "2025-07-14T20:43:39.808Z", "fragments": null, "artifacts": [ { "artifactType": "application/edi-x12", "usage": "input", "url": "https://core.us.stedi.com/2023-08-01/transactions/95e7786c-7066-4494-b83a-b1f300624902/input", "sizeBytes": 2016, "model": "transaction" }, { "artifactType": "application/json", "usage": "output", "url": "https://core.us.stedi.com/2023-08-01/transactions/95e7786c-7066-4494-b83a-b1f300624902/output", "sizeBytes": 13864, "model": "transaction" } ], "partnership": { "partnershipId": "local-clearinghouse-test", "partnershipType": "x12", "sender": { "profileId": "clearinghouse-test" }, "receiver": { "profileId": "local" } }, "x12": { "transactionSetting": { "guideId": "01J8JH1SGTB2FYKN2PG4MH84RP", "transactionSettingId": "01J8JH23VA3G2X8GENVVE6XZB9" }, "metadata": { "interchange": { "acknowledgmentRequestedCode": "0", "controlNumber": 1 }, "functionalGroup": { "controlNumber": 1, "release": "005010X221A1", "date": "2025-07-14", "time": "20:43:21", "functionalIdentifierCode": "HP" }, "transaction": { "controlNumber": "0001", "transactionSetIdentifier": "835" }, "receiver": { "applicationCode": "599264680681", "isa": { "qualifier": "ZZ", "id": "599264680681" } }, "sender": { "applicationCode": "STEDITEST", "isa": { "qualifier": "ZZ", "id": "STEDITEST" } } } }, "connectionId": "01JE9257XJ4G4YFMXCHJPFR434" } } } ``` #### File delivered events [#file-delivered-events] Stedi emits a file delivered event when it successfully generates and delivers a claim. You may want to send these events to your system for monitoring and alerting. Note that this event is emitted when Stedi delivers your claim to our connection with the payer. It doesn't indicate whether the payer received the claim or whether they have accepted or rejected it. ```json file.delivered.v2 event { "event": { "version": "0", "id": "3fb45b5f-bd7f-f9d0-c0a2-84946f20a9da", "detail-type": "file.delivered.v2", "source": "stedi.core", "account": "", "time": "2025-05-06T19:35:17Z", "region": "us-east-1", "resources": [], "detail": { "fileExecutionId": "e181c2ab-f85c-42bd-9cda-a7bd1e32b4c9", "processedAt": "2025-05-05T20:14:57.882927984Z", "artifacts": [ { "artifactType": "application/edi-x12", "usage": "input", "sizeBytes": 1270, "url": "https://core.us.stedi.com/2023-08-01/executions/e181c2ab-f85c-42bd-9cda-a7bd1e32b4c9/input", "model": "execution" }, { "artifactType": "application/edi-x12", "usage": "output", "sizeBytes": 1270, "url": "https://core.us.stedi.com/2023-08-01/executions/e181c2ab-f85c-42bd-9cda-a7bd1e32b4c9/output", "model": "execution" } ], "connection": { "connectionType": "STEDI_ACCOUNT_FTP", "connectionId": "01JM0XF37DXZ3THZ7N75YJTW52" }, "delivery": { "status": "DELIVERED", "message": "Delivered to 'Test Account SFTP'", "artifactId": "9d7c38f4-410b-4032-aad4-016d8140b265.x12" } } } } ``` #### File failed events [#file-failed-events] Stedi emits a file failed event when it either fails to process a response from a payer or cannot deliver a submitted claim. You may want to monitor these events because they include errors that are only available through this event type. For example, file failed events can include parsing issues or connection problems that our engineering team must resolve with the payer. ```json file failed event { "event": { "version": "0", "id": "cef43062-0258-cbac-b06d-ec6a21f03c69", "detail-type": "file.failed.v2", "source": "stedi.core", "account": "", "time": "2025-06-05T11:26:16Z", "region": "us-east-1", "resources": [ "https://core.us.stedi.com/2023-08-01/executions/7590afcd-26d7-4182-a8fc-1d1051e2815c" ], "detail": { "fileExecutionId": "7590afcd-26d7-4182-a8fc-1d1051e2815c", "direction": "INBOUND", "processedAt": "2025-06-05T11:26:16.354Z", "source": { "dirname": "remote-ftp/test/01JJYJ0GGVZD5GR230YP6G3MEA/fromPartner", "name": "Test_Dental.1234567.835" }, "artifacts": [ { "artifactType": "application/edi-x12", "url": "https://core.us.stedi.com/2023-08-01/executions/7590afcd-26d7-4182-a8fc-1d1051e2815c/input", "usage": "input", "model": "execution" } ], "connectionId": "01JJYJ0GGVZD5GR230YP6G3MEA", "partnership": { "partnershipId": "stedi-test_dentalpartner", "partnershipType": "x12", "receiver": { "profileId": "stedi-test" }, "sender": { "profileId": "dentalpartner" } }, "errors": [ { "message": "String element BPR-10 must have a length of 10, actual length is 5\nElement PER-02 is not used by this guide", "faultCode": "FAILED_TO_TRANSLATE" } ], "x12": { "metadata": { "interchange": { "acknowledgmentRequestedCode": "1", "controlNumber": 56199839 } }, "receiver": { "isa": { "qualifier": "30", "id": "117151744" } }, "sender": { "isa": { "qualifier": "ZZ", "id": "900117186" } } } } } } ``` ### Event filters [#event-filters] Without filters, Stedi sends all of the specified event types to your endpoint, regardless of the associated transaction. For example, if you subscribe to transaction processed events, you'll get transaction processed events for submitted claims and attachments as well as 999, 277CA, and 835 ERA responses. To further filter the events Stedi sends to your endpoint: - **Transaction:** This is useful if you want to send events for 277CA claim acknowledgments to one endpoint and events for 835 ERAs to another. For example, if you set this to `835: Health Care Claim Payment/Advice`, Stedi only sends events for processed 835 ERAs to your endpoint. - **Partnership:** This is useful if you want to send test claims to one endpoint and production claims to another. For example, if you set this to `local-clearinghouse-test`, Stedi only sends events for test claims to your endpoint. The **Guide**, **Connection**, and **Mode** filters are not relevant to claims processing. ### Event schema [#event-schema] All Stedi events follow a standard JSON Schema. The event payload itself does not include the contents of a given file or transaction. Instead, it references an API path to retrieve the entire object. ```json JSON event structure example { "version": "0", "id": "8a9fc08a-24b2-4eeb-af7c-f96376ea471e", "detail-type": "transaction.processed.v2", "source": "stedi.core", "account": "", "time": "2021-11-12T00:00:00Z", "region": "us-east-1", "resources": [ "https://core.us.stedi.com/2023-08-01/transactions/3543b3f7-0d78-48cc-97c3-ac145e250a1d" ], "detail": { ... } } ``` In addition to their `version`, `id`, and `time`, events have the following properties: - **`detail-type`** - Indicates the type of event, such as `transaction.processed.v2` or `file.failed.v2`. - **`source`** - Indicates the component that generated the event. All events use `source: "stedi.core"`. - **`account`** - The account ID that generated the event. - **`region`** - The AWS region where the event was generated. - **`resources`** - The URL to the resource that Stedi created. This can be a transaction or a file execution, depending on the event type. - **`detail`** - The JSON payload. The `detail-type` determines the schema for each payload. ## HTTP response codes [#http-response-codes] Stedi considers a `2xx` response a success, and marks any other response as a failure. Stedi retries events associated with status codes other than `2xx` for up to 4 times with a 90 second wait period inbetween retries. If the maximum number of retries has been exhausted, Stedi adds the event to the [error queue](#error-queue) for the webhook. You can set the **Concurrency** when configuring the webhook to prevent throttling. This setting determines the maximum number of deliveries that Stedi will attempt to deliver to the endpoint at one time. ## Certificates [#certificates] Webhooks only support valid, publicly trusted certificates. Self-signed certificates or certificates from private certificate authorities aren't supported. You'll receive the following error if the endpoint configured for the webhook uses a certificate that isn't signed by a known, trusted certificate authority: ``` "awsResponse": "Unable to invoke ApiDestination endpoint: API destination endpoint cannot be reached." ``` ## Timeouts [#timeouts] The target endpoint must respond with a `2xx` status code within 5 seconds, or the event will be counted as a failed delivery. This is a hard limit that cannot be increased or configured. Because of this timeout limitation, we recommend designing your webhook endpoints to immediately acknowledge receipt with a `2xx` response, then process the data asynchronously. See [Best practices for webhook endpoints](#best-practices-for-webhook-endpoints). ## Retries and duplicate deliveries [#retries-and-duplicate-deliveries] When a delivery fails, Stedi will retry up to 4 times every 90 seconds. After the fifth retry, Stedi moves the event to the error queue. If your webhook doesn't respond within 5 seconds, Stedi marks that as a failure and then automatically retries. This can result in duplicate deliveries. We strongly recommend using idempotency in your webhook receivers to safely handle duplicate deliveries. See [Best practices for webhook endpoints](#best-practices-for-webhook-endpoints). ## Error queue [#error-queue] Each webhook includes an error queue. Each item in the queue consists of the original event that was attempted to be delivered. This ensures if the target service has some downtime, or anything else goes wrong, the missed events can be retried later. The error queue retains items for 14 days. The order of the error queue is not guaranteed. The downstream service must be designed to be idempotent to handle at-least-once delivery of events, and must accept events out of order. ## Logs [#logs] To view logs, click the webhook to go to its detail page, and then navigate to the **Logs** tab. ## Deauthorized connections [#deauthorized-connections] If a webhook sends a message to an endpoint that returns a 401 (Unauthorized) response, the destination will be 'deauthorized'. In this state, the webhook won't be able to deliver messages. If there is an issue with your authentication information (such as the password, API key, or OAuth settings), edit the webhook to fix it. If the authentication information is correct, and there was a different reason for the endpoint returning a 401, you can try again by adding a temporary header. For example, `x-stedi-reauthorize` with today's date as a value. When you save, the webhook will attempt to deliver again. This header can be removed later. Editing the value of a header will also restart deliveries. You will likely have a queue of messages to deliver, so Stedi will automatically start retrying them after you make this change. If the endpoint is still returning an invalid response, the webhook will return to `Deauthorized`. ## Best practices for webhook endpoints [#best-practices-for-webhook-endpoints] When creating endpoints to receive webhooks from Stedi, we recommend the following architecture: 1. **Acknowledge first, process later**: Design your endpoint to immediately return a `2xx` status code to acknowledge receipt, then process the payload asynchronously. 2. **Store payloads for processing**: Capture the webhook data in a queue, database, or other storage mechanism before processing. 3. **Process asynchronously**: Handle the actual business logic in a separate process or worker after acknowledging receipt. 4. **Implement idempotency**: Use idempotency keys from the event payload to prevent duplicate processing. - Store the `eventId` from each webhook payload in your database - Before processing an incoming webhook, check if its `eventId` has already been processed - Design operations to be idempotent, ensuring that processing the same event multiple times doesn't cause issues (e.g., avoid incrementing counters on each processing attempt) This architecture prevents [timeouts](#timeouts), handles potential duplicate deliveries, and allows you to process high volumes of events. # Coordination of benefits (COB) checks Source: https://www.stedi.com/docs/healthcare/coordination-of-benefits Use a coordination of benefits (COB) check to determine whether a patient has multiple health plans and which plan pays first. Some patients have multiple health plans. For example, a dependent may have coverage with two private insurance companies through their parents. When a patient has active coverage with multiple plans, you need to know which health plan is primarily responsible for paying claims (coordination of benefits). You can use a coordination of benefits (COB) check to determine: - If a patient has coverage with more than one health plan - Whether there is coverage overlap between plans - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios COB checks can help ensure that you submit claims to the correct payer and avoid claim denials. We recommend performing COB checks for all new patients who have coverage through one of Stedi's supported payers. When Stedi identifies overlapping coverage, we strongly recommend performing follow-up [eligibility checks](/healthcare/send-eligibility-checks) with each payer to verify coverage status and retrieve the patient's complete and current benefits information before you submit claims. COB checks require that you know at least one of the patient's active health plans. If you're unsure whether a patient has any active coverage at all, you can perform an [insurance discovery check](/healthcare/insurance-discovery) to find potential coverage. ## Supported payers [#supported-payers] COB doesn't support Medicare plans. However, Stedi supports many Medicare Advantage plans. Visit the [Payer Network](https://www.stedi.com/healthcare/network?filter=eyJ0cmFuc2FjdGlvblR5cGVzIjpbIkNPQiJdLCJjb3ZlcmFnZVR5cGVzIjpbXSwib3BlcmF0aW5nU3RhdGVzIjpbXSwicHJvZ3JhbXMiOltdfQ%3D%3D) for a complete list of supported payers. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) isn't required to run COB checks through Stedi. ## How COB checks work [#how-cob-checks-work] You submit a coordination of benefits request with information for one of the patient's health plans. The information required is similar to a standard eligibility check – first name, last name, DOB, and either member ID or SSN – and we recommend first running a [real-time eligibility check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility-legacy) to ensure that the member's details are accurate. Once you submit the request, Stedi searches a database of eligibility data from regional and national plans. This database has 245+ million patient coverage records from 45+ health plans, ASOs, TPAs, and others, including participation from the vast majority of national commercial health plans. Data is updated at least weekly to ensure accuracy. COB check results may be partial or negative and may fail to include some or all of a patient's health plans. Results depend on whether the patient's payers contribute to the COB database. Stedi synchronously returns summary information about each of the patient's active health plans, whether there is coverage overlap, and, if so, the responsibility sequence number for each payer (such as primary or secondary, if that can be determined). Once you receive the results, we strongly recommend performing follow-up [eligibility checks](/healthcare/send-eligibility-checks) with each payer to verify coverage status and retrieve the patient's complete and current benefits information before you submit claims. ## Check COB [#check-cob] Each COB check must be for a participating health plan for which the patient has coverage. For example, if the patient has coverage from Cigna and UnitedHealthcare, a COB check to Aetna will return an error. Medicare plans are not supported. However, many Medicare Advantage plans are supported. ### Accurate patient data [#accurate-patient-data] COB checks are significantly more sensitive to data accuracy than eligibility checks. To perform successful COB checks, the patient information you provide in the check **must** match the payer's data exactly. For example, if a payer has a patient's name stored as "Jonathan Doe", they may return benefits information when you submit an eligibility check for "Jon Doe", as long as they can identify the patient through the other information provided. However, a COB request for "Jon Doe" will fail because the name doesn't match the payer's records exactly. To avoid unnecessary COB check failures, we strongly recommend that you first submit an eligibility check request for the patient. Then use the patient's first name, last name, date of birth, and member ID from the successful eligibility response to build the COB request. ### Service type code [#service-type-code] You can submit COB checks with the `30` service type code for Health Benefit Plan Coverage. This is the broadest service type code that covers all medical services and subtypes included in the patient's health plan. ### API submission [#api-submission] Use the [Coordination of Benefits Check](/healthcare/api-reference/post-coordination-of-benefits) endpoint to submit COB checks programmatically. The information required in the request is similar to a standard eligibility check – first name, last name, DOB, and either member ID or SSN. The following example shows a COB check for a dependent named Jordan Doe who has coverage with Blue Cross Blue Shield of Massachusetts (Stedi payer ID: `EWDCI`). ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data "'{ "tradingPartnerServiceId": "EWDCI", "provider": { "organizationName": "ACME Health Services", "npi": "1999999984" }, "subscriber": { "firstName": "John", "lastName": "Doe", "dateOfBirth": "1985-05-27", "memberId": "W000000000" }, "dependent": { "firstName": "Jordan", "lastName": "Doe", "dateOfBirth": "2002-12-31" }, "encounter": { "dateOfService": "2024-08-02", "serviceTypeCode": "30" } }'" ``` Visit [Request and response examples](/healthcare/cob-response#request-and-response-examples) to review sample COB checks for common scenarios. #### Concurrency limit [#concurrency-limit] Visit [Concurrency limits](/healthcare/api-reference#concurrency-limits) for more information. ### Manual submission [#manual-submission] To prevent accidentally sending checks to unsupported payers, the Stedi portal only provides the option to perform a COB check within successful eligibility checks to supported COB payers. To submit a new COB check through the Stedi portal: 1. Go to the [Eligibility checks](https://portal.stedi.com/app/healthcare/eligibility/checks) page. 1. Click the eligibility check for the patient you want to check for coordination of benefits. This must be a successful eligibility check for the patient's health plan - failed checks can't be used as the basis for COB checks. 1. Click **Actions** to review the details of the eligibility check. 1. Click `Start COB check` to open the coordination of benefits check form. Stedi prefills the patient's information from the eligibility check. # Transaction enrollment requests Source: https://www.stedi.com/docs/healthcare/create-manage-transaction-enrollments Submit transaction enrollment requests through the Stedi portal, CSV import, or Stedi's API, then track and manage them until they're live. An enrollment request includes the provider record, the transaction type you want to enroll, the payer you want to enroll with, and a designated contact that the payer can communicate with about the enrollment. All requests go through the same high-level [enrollment process](/healthcare/transaction-enrollment#enrollment-process) once submitted. Developers can create enrollment requests individually in the UI, through bulk CSV import, or through the API. **Electronic Remittance Advice (ERAs):** Once enrollments are live, you'll no longer receive ERAs for that provider through your previous clearinghouse. If the payer supports it, you can specify a [requested effective date](#requested-effective-date) to help coordinate your migration to Stedi. ## Consider enrollment scope [#consider-enrollment-scope] When you enroll a provider for 835 Electronic Remittance Advice (ERAs), payers can scope the enrollment in one of two ways: - **NPI:** The payer registers only the specific National Provider Identifier (NPI) you submitted in the enrollment request. Other NPIs under the same Tax Identification Number (TIN) continue receiving ERAs through their existing clearinghouses. - **TIN:** The payer registers all NPIs under the TIN. When you enroll one NPI, the payer switches the entire TIN to Stedi, affecting all NPIs that share that TIN. Payers vary in how they manage enrollment scope, and this information isn't always disclosed to Stedi. For payers with TIN scope, enrolling one NPI may unintentionally enroll the other NPIs under that TIN. This means the ERAs for all of the associated NPIs will start flowing through Stedi - not just ERAs for the NPI you meant to enroll. ### Prevent disruptions [#prevent-disruptions] To reduce the likelihood of unintentionally disrupting your workflows, we recommend: - Enroll all NPIs that share the same TIN at the same time. This is common for hospital systems, clinic networks, or large medical groups that have multiple service locations operating under the same billing entity. - If you need to keep some NPIs with your existing clearinghouse, contact Stedi support before submitting enrollment requests. We can help ensure the process goes smoothly. ## Submit enrollment requests [#submit-enrollment-requests] Submit enrollment requests individually through the [Stedi portal](#individual-ui-submission), in bulk using [CSV import](#bulk-csv-import), or programmatically through the [Enrollments API](#api-submission). ### Individual UI submission [#individual-ui-submission] Creating individual enrollment requests through the Stedi portal involves two steps: creating a provider record and submitting enrollment requests. #### Step 1: Create a provider record [#step-1-create-a-provider-record] You must create a provider record with the name, tax ID, NPI, and contact information of the billing provider you plan to use in claims. Stedi submits this information to the payer as part of the enrollment process. If you're a solo provider, this is likely your information. If you're [enrolling a group practice](#practices-and-facilities-with-multiple-providers-or-locations), you only need to create provider records for the NPIs and the tax IDs you use for billing. You don't need to create provider records for individual rendering providers. ![Provider record example](/images/providers/new-provider-enrollment.png) To create a provider record: 1. Go to the [Providers page](https://portal.stedi.com/app/healthcare/providers). 2. Click **New provider**. 3. Enter the required information: - **Display name**: A name to help you identify the provider record in your account. For example, "XYZ Medical Group". We don't share this name with payers. - **NPI**: The National Provider Identifier (NPI) on file with the payer that you use for billing. If you're enrolling a group practice, this is typically the group's NPI. - **Tax ID**: The tax ID, which can be an EIN or SSN. This should be the tax ID on file with the payer that you use for billing. - **Contacts**: This is where the payer will send communications about the enrollment, if needed. For many providers, Stedi can fetch contact information from the NPI registry. The name and address should exactly match what the payer has on file. However, the email and phone number can be set to wherever you want to receive payer communications. 4. Click **Create provider**. The provider record is created and appears in the list on the [**Providers** page](https://portal.stedi.com/app/healthcare/providers). #### Step 2: Create enrollment requests [#step-2-create-enrollment-requests] Once you've created a provider record, you can attach it to one or more enrollment requests. ![New enrollment request](/images/providers/new-enrollment.png) To create an enrollment request: 1. Go to the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments). 2. Click **New enrollment**. 3. Complete the required information: - **Payer**: Select the payer you want to enroll with. Start typing the payer's name to filter the list. - **Provider**: Select an existing provider record. The form automatically populates the provider's information. You can choose to use an existing contact or enter new contact information for the payer to use for communications about the enrollment. Review our guidance on [provider contact information](#provider-contact) to ensure updates go to the correct location. - **Transaction**: Select the transaction type you want to enroll for. The form populates the list of transaction types that the payer supports, and you'll only be able to select transaction types that require enrollment. - **Aggregate ERAs by (optional)**: For Electronic Remittance Advice (ERA) enrollments with supported payers, you can specify an [aggregation preference](#era-aggregation-preference). - **Requested effective date (optional)**: For supported payers, you can specify the date you'd like the enrollment to take effect. This is helpful for coordinating the migration from your previous clearinghouse, especially for ERA enrollments. Visit [Requested effective date](#requested-effective-date) to learn more. - **Stedi contact person**: This is the email address where Stedi will send updates about the enrollment request. We'll use it to notify you when there are next steps and send updates on the enrollment's status. This email address can be different from the contact information you provided in the provider record. Set it to wherever you want to receive Stedi's communications about the enrollment. 4. Click **Create enrollment**. Stedi asks you to confirm the information. 5. Review the enrollment information carefully and then click **Submit enrollment**. The enrollment request is created and appears in the list of enrollments on the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments). ### Bulk CSV import [#bulk-csv-import] You can import enrollment requests from a CSV file. This is a great option if you need to submit many requests at once. To submit enrollment requests through bulk CSV import: 1. Go to the [Bulk imports page](https://portal.stedi.com/app/healthcare/enrollments/bulk). 2. Click **New bulk import**. The upload page contains detailed instructions for formatting the CSV file. 3. Download the CSV template and prepare your file according to the provided instructions. We also recommend reviewing the instructions about [enrollment contact information](#enrollment-contact-information) and [practices and facilities with multiple providers or locations](#practices-and-facilities-with-multiple-providers-or-locations) to ensure your file is set up correctly. 4. Click **+ Upload file** and select your file or drag and drop your file into the **Upload CSV** section. 5. Enter a **Name** for the batch. Stedi displays this batch name in the portal, so choose something descriptive. 6. Click **Verify file**. Stedi checks for errors and flags any rows that require adjustments. If there are errors, you can either fix them and re-upload the CSV file or click **Execute import without invalid rows** to proceed with importing valid rows. 7. Click **Execute import**. Stedi processes the import and creates the enrollment requests. You can review the status of each bulk import on the [Bulk imports page](https://portal.stedi.com/app/healthcare/enrollments/bulk). The overview shows the number of rows that were successfully imported, the number of rows that were skipped due to errors or duplicates, and the date and time of the import. Click an import to view more details and download the [import status report](#import-status-report). Imported enrollment requests appear in the list of enrollments on the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments). #### Importing behavior [#importing-behavior] Stedi automatically does the following when importing enrollment requests from a CSV file: - Creates a new provider record for each unique combination of NPI and tax ID in the CSV file. For example, these two providers would be created as separate records even though they have the same name and NPI: - `John Doe, NPI: 1999999984, Tax ID: 987654321` - `John Doe, NPI: 1999999984, Tax ID: 123456789` When a row in your CSV file contains an NPI and tax ID that match an existing provider record in your account, Stedi overwrites the existing provider record with the information in the CSV file. Any changes (such as updated address or contact information) aren't automatically applied to existing enrollment requests for that provider, only to requests created after Stedi updated the record. - Creates and submits enrollment requests. - Removes duplicate rows to prevent duplicate requests. - Skips rows that contain errors. For example, if a row contains an invalid NPI, Stedi skips that row and imports the rest of the file. Review the import status report to understand which rows were skipped and why. #### Import status report [#import-status-report] After importing, you can download a report that shows the status of each row in the CSV file. For example, duplicate rows are marked as `Duplicate: Enrollment already exists` in the `result` column. To download the report: 1. Go to the [Bulk imports page](https://portal.stedi.com/app/healthcare/enrollments/bulk). 2. Click an import to view its details. 3. Click **Download full report**. Rows with errors display a clear inline error message to help you make the necessary adjustments. You can fix rows with errors and re-upload the CSV file as many times as needed until all imports are successful. ### API submission [#api-submission] Creating enrollment requests programmatically through Stedi APIs involves two steps: 1. **Create a provider record:** Call the [Create Provider](/healthcare/api-reference/post-enrollment-create-provider) endpoint. 1. **Create an enrollment request:** Call the [Create Enrollment](/healthcare/api-reference/post-enrollment-create-enrollment) endpoint. You can create enrollment requests in `DRAFT` status first and change the status to `STEDI_ACTION_REQUIRED` later when you're ready to submit them to Stedi. Stedi won't process the enrollment until it is in `STEDI_ACTION_REQUIRED` status. ## Enrollment contact information [#enrollment-contact-information] When you submit enrollment requests, you'll need to provide two types of contact information. It's important to understand the difference between them. ### Provider contact [#provider-contact] This is where the **payer** will send communications about the enrollment, if needed. - The name and address should match exactly what the payer has on file for the provider. Some payers reject enrollment requests with addresses that don't match their records. - However, you may want to set the phone number or email to a different contact - for example, a credentialing or general inbox - to ensure payer communications go to the right place. - If you're enrolling a group practice, select a single administrative entity as the contact - don't use individual provider emails. #### Where to set [#where-to-set] You can specify contacts on both the provider record and on the enrollment request. - **(Optional) Provider record:** These contacts are for convenience - they allow the Stedi portal to prepopulate contact information options when you create enrollment requests manually. They aren't required when you create provider records, and they aren't automatically added to enrollment requests you submit through the portal or API. - **(Required) Enrollment request:** You must specify a provider contact on the enrollment request. This is the information that Stedi shares with the payer when submitting the enrollment on your behalf. This contact information doesn't need to match the existing contact information on the provider record, which allows you to use different contacts for different payers as needed. ### Stedi contact email [#stedi-contact-email] This is the email address where **Stedi** will send updates about the enrollment. It's required when you submit an enrollment request - we use it to notify you when there are next steps and send updates on the enrollment's status. This is called the [`userEmail` property](/healthcare/api-reference/post-enrollment-create-enrollment#body.userEmail) in the Stedi API, the **user_email** column in the CSV file for bulk imports, and the **Stedi contact person** in the UI form. This email address can be different from the contact information you provided in the provider record. Set it to wherever you want to receive Stedi's communications about the enrollment. ## Requested effective date [#requested-effective-date] You can specify a requested effective date for transaction enrollments. This is the date you'd like the enrollment to take effect with the payer. For example, setting this for an 835 Electronic Remittance Advice (ERAs) enrollment to a future date helps you coordinate the migration from your previous clearinghouse to Stedi. Stedi processes enrollments accordingly, but can't guarantee that the enrollment will be effective on this exact date. ### Check payer support [#check-payer-support] You can determine which payers support requested effective dates through the: - [Payers API](/healthcare/api-reference/get-payer): Check the `requestedEffectiveDate` property in the transaction-specific enrollment process. - [Payer Network](https://www.stedi.com/healthcare/network): Check the **Requested effective date** field for the transaction type. ![Payer Network Aggregation Preferences](/images/providers/payer-network-aggregation-preferences.png) ### Set requested effective date [#set-requested-effective-date] To specify a requested effective date on enrollments: - **API:** Set the [`requestedEffectiveDate` property](/healthcare/api-reference/post-enrollment-create-enrollment#body.requestedEffectiveDate) in your [Create Enrollment request](/healthcare/api-reference/post-enrollment-create-enrollment). Use YYYYMMDD format. You can submit today's date or a future date up to 6 months from today. - **Stedi portal:** Enter a date in the **Requested effective date** field when submitting enrollments. This field is visible for supported payers once you select a transaction type. - **CSV import:** Populate the `requested_effective_date` column in YYYYMMDD format for each enrollment. Only set this for payers that support requested effective dates. If you include a requested effective date for an unsupported payer, Stedi rejects the enrollment request. If you don't set a requested effective date, Stedi defaults to the enrollment's submission date for submitted enrollments. ## ERA aggregation preference [#era-aggregation-preference] 835 Electronic Remittance Advice (ERAs) can contain payment and adjudication details for multiple claims. For supported payers, you can specify an aggregation preference for grouping claim information within each ERA. This helps ensure ERAs arrive in the way your billing system expects, reducing time spent matching payments to providers or practices. ### Aggregation types [#aggregation-types] Payers use one of the following billing provider identifiers to group claim information in ERAs: - **NPI:** The National Provider Identifier (NPI) always uniquely identifies a single provider entity, either an individual provider or an organization. For example, a doctor employed by multiple clinics may use the same NPI to submit claims across multiple TINs. - **TIN:** The Tax Identification Number (TIN) can be the provider's Social Security Number (SSN) or Employee Identification Number (EIN). TINs are sometimes shared across multiple billing providers within the same organization. For example, a clinic may submit claims for several doctors using a single TIN. Most payers default to TIN-based aggregation, and not all payers support both aggregation types. ### Check payer support [#check-payer-support-1] You can determine which aggregation types your payers support through the: - [Payers API](/healthcare/api-reference/get-payer): Check the `supportedAggregationPreferences` array in any endpoint response. - [Payer Network](https://www.stedi.com/healthcare/network): Check the **ERA aggregation preferences** field. ![Payer Network Aggregation Preferences](/images/providers/payer-network-aggregation-preferences.png) ### Set aggregation preference [#set-aggregation-preference] To specify your aggregation preference on ERA enrollments: - **API:** Set the [`aggregationPreference` property](/healthcare/api-reference/post-enrollment-create-enrollment#body.aggregationPreference) in your [Create Enrollment request](/healthcare/api-reference/post-enrollment-create-enrollment#body.aggregationPreference). - **Stedi portal:** Choose an identifier in the **Aggregate ERAs by** section when submitting ERA enrollments. - **CSV import:** Populate either the `aggregationPreferenceNpi` (10 digit string) or `aggregationPreferenceTaxId` (9 digit string) column for each enrollment. Stedi attempts to enroll with with your specified preference, but it's not guaranteed - ultimately, the payer controls how ERAs are grouped and routed. If you don't set a preference, Stedi automatically selects a default based on the payer's supported aggregation types and the available identifiers for the provider. When available, Stedi displays the aggregation preference on the enrollment request's details page in the Stedi portal. It's also available in Enrollment API endpoint responses in the [`aggregationPreference` property](/healthcare/api-reference/get-enrollment#response.aggregationPreference). ### Independent from scope [#independent-from-scope] ERA aggregation preferences and [enrollment scope](#consider-enrollment-scope) are independent payer behaviors: - **Enrollment scope:** Controls which NPIs the payer registers when you submit an enrollment request. - **ERA aggregation:** Controls how the payer packages 835 ERAs after enrollment is complete - grouping claim information by NPI or TIN. The payer's supported aggregation types don't indicate how they manage enrollment scope. A payer can support NPI-level aggregation preferences for 835 ERAs _and_ manage enrollments at the TIN level. In these cases, specifying **NPI** as your preferred aggregation type in the enrollment request won't prevent the payer from enrolling all the NPIs associated with a specific TIN once the request is processed. ## Manage tasks and documents [#manage-tasks-and-documents] After submitting an enrollment request, you may need to complete tasks to move the enrollment process forward. Tasks can include providing documentation, completing payer-specific requirements, or reviewing enrollment details. Learn how to [complete enrollment tasks and manage documents](/healthcare/transaction-enrollment-tasks-documents). ## Review enrollment details [#review-enrollment-details] You can track the status of your transaction enrollment requests from the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) in your account. Click an enrollment request to view its details, including: - The provider and payer associated with the enrollment. - The transaction types included in the enrollment. - The current status of the enrollment. - Any notes or instructions from Stedi or the payer. - The history of status changes and actions taken on the enrollment. - Enrollment documents, such as signed PDF forms. Alternatively, you can retrieve information about enrollment requests through the [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoint. ## Cancel enrollments [#cancel-enrollments] You can only cancel enrollment requests that are in `DRAFT`, `STEDI_ACTION_REQUIRED`, or `PROVIDER_ACTION_REQUIRED` status. Reach out to Stedi support in Slack or Teams to cancel. Once an enrollment is canceled, Stedi sets its status to `CANCELED` and stops the enrollment process with the payer. We can't cancel enrollments that are in `PROVISIONING` or `LIVE` status. Once an enrollment is in one of these statuses, the only way to stop 835 ERAs from coming to Stedi is to submit an enrollment through another clearinghouse. ## Notifications [#notifications] Stedi sends in-app notifications and emails when enrollment request statuses change to `PROVISIONING`, `PROVIDER_ACTION_REQUIRED`, `LIVE`, or `REJECTED`. You can manage your [notification preferences](/healthcare/account-settings#notification-preferences) to control which notifications you receive. - **In-app notifications:** You'll receive an in-app notifications for these status changes. Each notification includes links to the associated enrollment requests where you can review required tasks, notes, and other details. - **Email notifications:** Once an hour, Stedi checks for enrollment request status changes. If there are updates, Stedi sends a batched notification email with a summary of all enrollment request updates. If you aren't receiving notifications for enrollment request updates, contact Stedi support in Slack or Teams. ## Automatic enrollment requests [#automatic-enrollment-requests] Some payers, such as the Centers for Medicare and Medicaid Services (CMS), require enrollment for eligibility checks. Eligibility checks fail when a provider isn't properly enrolled. In these cases, Stedi automatically submits the required transaction enrollment request. Payers typically process these requests within 1-2 days. We support automatic enrollment requests for the following payers in the [Payer Network](https://www.stedi.com/healthcare/network): - The Centers for Medicare and Medicaid Services (CMS) (Payer ID: `CMS`) - CMS MBI Lookup with SSN (Payer ID: `MBILU`) - Highmark of Pennsylvania (Payer ID: `54771`) - Highmark Senior Health Company (Payer ID: `15460`) - Highmark Blue Cross Blue Shield of Delaware (Payer ID: `030`) - Highmark Blue Cross Blue Shield of West Virginia (Payer ID: `54828`) Please note: - If the provider's NPI isn't active in the [National Plan & Provider Enumeration System (NPPES)](https://npiregistry.cms.hhs.gov/search), or if provider name information is unavailable from NPPES, Stedi won't automatically create the enrollment. Auto-enrollment requires provider name information, which is often unavailable for deactivated NPIs. - For CMS enrollments, the provider must also complete [attestation](#cms-attestation). Stedi adds a task to the enrollment request when attestation is required. - For CMS enrollments, the transaction enrollment request will be rejected and set to `REJECTED` status if the provider's NPI isn't active in [PECOS](https://pecos.cms.hhs.gov/pecos/login.do#headingLv1), the system CMS uses to manage active Medicare providers. In this case, we'll send you instructions explaining how to resolve the issue. - Stedi sets the [Stedi contact email](#stedi-contact-email) to the oldest account member with the Admin role. This is where Stedi sends enrollment status notifications. ## CMS eligibility enrollment [#cms-eligibility-enrollment] The Centers for Medicare and Medicaid Services (CMS) requires providers to complete attestation, also called HETS EDI Enrollment, before running Medicare eligibility checks. Attestation confirms that clearinghouses like Stedi have authorization to conduct eligibility checks on the provider's behalf. This requirement applies only to traditional Medicare, not Medicare Advantage (Part C) or Part D plans. ### How attestation works [#how-attestation-works] Attestation is required for each billing National Provider Identifier (NPI) enrolled with CMS for eligibility checks. Stedi can't complete this step on the provider's behalf, and there is no bulk attestation across NPIs. The process takes approximately 5-15 minutes per NPI. When you submit a CMS eligibility check enrollment request, Stedi moves the enrollment to the **Provider Action Required** status and adds an enrollment task to complete attestation. The task contains instructions for completing attestation. After the provider completes attestation, they can start submitting eligibility checks immediately, even if the enrollment status is not yet **Live**. CMS rejects Medicare eligibility requests from providers who haven't completed attestation using `AAA` error code `41`. You can view the attestation task and its status in: - The **Tasks** section of the enrollment request's details page in the Stedi portal. - The `tasks` object array of the [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) and [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) API responses. ## Enrollments hub [#enrollments-hub] Our network and enrollment operations team knows the nuances of each payer's enrollment requirements and maintains a public repository of payers that require additional steps through our [Transaction Enrollments Hub](https://enrollments.stedi.com). ## Practices and facilities with multiple providers or locations [#practices-and-facilities-with-multiple-providers-or-locations] Some healthcare organizations operate multiple facilities or practices under a shared structure. This is common in hospital systems, clinic networks, or large medical groups where multiple service locations operate under the same billing entity. Transaction enrollment requires the billing provider's tax ID and NPI that you plan to use in claims and Electronic Remittance Advice (ERAs). When providers in a healthcare organization all use the same group NPI and tax ID for billing, we recommend: - Create a single provider record with that NPI and the tax ID. You don't need to create provider records for individual rendering providers. - Create enrollment requests with the billing provider record attached. You don't need to submit additional enrollment requests for individual rendering providers. Select a single administrative entity as the contact - don't include individual provider emails. This should be a credentialing or general inbox. - Use the taxonomy code that matches the billing provider's credentials when submitting claims. # Credentialing and enrollment Source: https://www.stedi.com/docs/healthcare/credentialing-and-enrollment Healthcare providers may need to complete three distinct enrollment processes to work with payers and send transactions through clearinghouses. Which processes are required depends on the payer and the types of transactions the provider wants to send and receive. - **Credentialing:** Validating a healthcare provider's qualifications - **Payer enrollment:** Registering a credentialed provider with a specific payer's health plan(s) - **Transaction enrollment:** Registering a provider to send and receive EDI transactions (such as claims and eligibility checks) through a specific clearinghouse with a specific payer These enrollments typically happen in sequence: first credentialing, then payer enrollment, and then transaction enrollment, although credentialing and payer enrollment are sometimes combined into a single process. Stedi specifically handles [transaction enrollment](/healthcare/transaction-enrollment), the final step needed to exchange eligibility and claims transactions through our clearinghouse. Stedi doesn't handle credentialing or payer enrollment, which providers must complete directly with each payer or through a specialized credentialing service. ## Credentialing [#credentialing] Credentialing is the process of validating a healthcare provider's qualifications, including: - Verification of education, training, and licensure - Review of board certifications and medical specialties - Confirmation of work history and malpractice insurance - Review of any sanctions, restrictions, or malpractice claims Credentialing establishes that a provider meets the payer's standards for providing care to their members. Once credentialed, a provider becomes eligible to join the payer's networks. Some payers have multiple networks and those networks may contain multiple tiers of providers. In order to actually join a network, the payer may require the provider to agree to a rate schedule and sign a contract with other terms. **Timeline:** Credentialing typically takes 90-180 days to complete. **Who handles it:** Providers must complete credentialing directly with each payer or through a specialized credentialing service. **Stedi doesn't handle the credentialing process.** There are several third-party vendors you can use for credentialing, including: - [Assured](https://www.withassured.com/) - An AI-powered platform for provider network management, including automated credentialing, licensing, and payer enrollment. - [Medallion](https://medallion.co/) - An all-in-one provider data network management platform to automate credentialing, payer enrollment, monitoring, and licensing. - [Verifiable](https://verifiable.com/) - An API-first platform for credentialing, plus an AI agent designed to automate end-to-end credentialing with human oversight. There is a subset of eligibility payers who require credentialing but not transaction enrollment. If you get [`AAA` errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors) in the `4x` range (such as `43`), the provider may need to complete credentialing with the payer even if transaction enrollment isn't required. Contact the payer to resolve. ## Payer enrollment [#payer-enrollment] Payer enrollment (also called provider enrollment) is the process of registering a credentialed provider with a specific payer's health plan(s). This involves: - Submitting applications to payers for specific lines of business (Medicare, Medicaid, commercial plans) - Providing information about the provider's practice, such as locations and billing details - Establishing contract terms for services and reimbursement rates - Setting up payment arrangements Payer enrollment establishes a business relationship between the provider and the payer. Once enrolled, the provider can submit claims to the payer and receive payments for services provided to the payer's members. (Payers might also accept at least certain types of claims from non-enrolled providers subject to legal requirements and plan rules.) **Timeline:** Payer enrollment typically takes 60-120 days after credentialing is complete. However, this process is sometimes combined with or conducted in parallel with the credentialing process. **Who handles it:** Providers must complete payer enrollment directly with each payer. **Stedi doesn't handle the payer enrollment process.** ## Transaction enrollment [#transaction-enrollment] Transaction enrollment is the process of registering a provider to send and receive electronic EDI transactions (such as claims and eligibility checks) through a specific clearinghouse with a specific payer. Once enrolled, the provider can send and receive specific transactions with the payer through the clearinghouse. Transaction enrollment involves: - Submitting the provider's name, tax ID (EIN / TIN), NPI, billing address, and contact information - Specifying which transaction types, such as claims, eligibility checks, and Electronic Remittance Advice (ERAs), the provider wants to exchange electronically - Setting up the necessary technical connections between the clearinghouse and payer All payers require providers to complete transaction enrollment before receiving ERAs because ERAs can only be sent to a single clearinghouse. When you submit an ERA enrollment in Stedi, it overrides the provider's existing ERA routing. A much smaller number of payers also require transaction enrollment before providers can start submitting other transaction types, such as claims and eligibility checks. **When it's required:** Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether your payers require enrollment for the transaction types you want to send and receive. If the network says enrollment isn't required, then you can start sending those transactions right away - no transaction enrollment needed. However, you'll still need to include the provider's information (like their [NPI](/healthcare/national-provider-identifier)) in API requests when required. **Timeline:** Transaction enrollment typically takes 2-6 weeks, depending on the payer. **Who handles it:** Stedi handles the transaction enrollment process on behalf of providers. Visit [Transaction enrollment](/healthcare/transaction-enrollment) to learn how to complete transaction enrollment through Stedi. Transaction enrollment is specific to each clearinghouse. If you switch from another clearinghouse to Stedi, you'll need to complete transaction enrollment through Stedi even if you were previously enrolled with the same payer through a different clearinghouse. # Active coverage and benefits Source: https://www.stedi.com/docs/healthcare/eligibility-active-coverage-benefits Use an eligibility check response to determine whether a patient has active coverage, when they're eligible, and which benefits apply to a service. This page describes how to use the eligibility response to determine the patient's active coverage, eligibility dates, and specific benefits. ## Response shapes [#response-shapes] Stedi returns one of two [response shapes](/healthcare/eligibility-response-shapes), depending on the endpoint you called. Both contain the same benefits information, organized differently. You can identify them by the top-level array that organizes the patient's benefits information - either `plans` or `benefitsInformation`. | Top-level array | Endpoints | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `plans` | [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) | | `benefitsInformation` | [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) | Every section on this page covers both response shapes, labeled `plans` and `benefitsInformation`. Select the label that matches the endpoint you called, and the page applies your selection to every section. ## Does the patient have coverage for the requested service? [#does-the-patient-have-coverage-for-the-requested-service] You need two key pieces of information to determine whether the patient's health plan covers the requested service. The patient has coverage when: 1. The date of service is within the [eligibility period](#when-is-the-patient-eligible-for-benefits) for their health plan. When the benefit you're checking has its own [benefit-specific dates](#benefit-specific-eligibility-dates), use those dates instead. 1. They have [active coverage](#active-and-inactive-coverage) for the applicable [service type code](#service-type-codes). The [`subscriber.dates`](/healthcare/api-reference/post-eligibility-check#response.subscriber.dates) object contains the eligibility period for the patient's health plan. Each entry in [`plans[].benefits.statuses`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.statuses) reports coverage status for the service named in its `service` object. In the following example: - The [`subscriber.dates.plan`](/healthcare/api-reference/post-eligibility-check#response.subscriber.dates.plan) object shows that the patient's coverage with their health plan runs from January 1 through December 31, 2024. - The `plans[].benefits.statuses` entry reports `ACTIVE_COVERAGE` for service type code `35` (Dental Care). - That entry includes its own `dates.benefit`, which begins July 1. The patient has dental coverage from July 1, not from January 1 when their health plan coverage begins. Use the benefit's dates to determine eligibility for dental services. {/* schema:CreateEligibilityCheckResponseContent */} ```json { "id": "ec_550e8400-e29b-41d4-a716-446655440000", "payer": { "type": "PAYER", "name": { "organization": "HUMANA" } }, "x12": "...", "subscriber": { "dates": { "plan": { "start": "2024-01-01", "end": "2024-12-31" } } }, "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "35", "definition": "Dental Care" }, "dates": { "benefit": { "start": "2024-07-01", "end": "2024-12-31" } } } ] } } ] } ``` The top-level [`planDateInformation`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planDateInformation) object contains the eligibility period for the patient's health plan. Each entry in `benefitsInformation` with a `code` of `1` through `5` reports active coverage for the service types in its `serviceTypeCodes` array. In the following example: - The `planDateInformation` object shows that the patient's coverage with their health plan runs from January 1 through December 31, 2024. - The `benefitsInformation` entry has a `code` of `1` (Active Coverage) for service type code `35` (Dental Care). - That entry includes its own `benefitsDateInformation`, which begins July 1. The patient has dental coverage from July 1, not from January 1 when their health plan coverage begins. Use the entry's dates to determine eligibility for dental services. ```json { "planDateInformation": { "planBegin": "20240101", "planEnd": "20241231" }, "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["35"], "serviceTypes": ["Dental Care"], "benefitsDateInformation": { "benefitBegin": "20240701", "benefitEnd": "20241231" } } ] } ``` ## When is the patient eligible for benefits? [#when-is-the-patient-eligible-for-benefits] The payer returns dates that determine when the patient is eligible for benefits under their health plan. Most commercial payers only return information for the current calendar year. The patient likely doesn't have active coverage if the date of service falls after the earliest ending date. These dates apply to every benefit within the patient's health plan unless a specific benefit has its own dates. The [`subscriber.dates`](/healthcare/api-reference/post-eligibility-check#response.subscriber.dates) object contains the coverage dates, or [`dependent.dates`](/healthcare/api-reference/post-eligibility-check#response.dependent.dates) when the patient is a dependent. Check `plan`, `eligibility`, and `policy`. The following example shows a health plan that began on January 1, 2024 and ended on December 31, 2024. The patient has been eligible for benefits since January 1, 2023. {/* schema:EligibilityCheckSubscriber:unwrap */} ```json "subscriber": { "dates": { "plan": { "start": "2024-01-01", "end": "2024-12-31" }, "eligibility": { "start": "2023-01-01" } } } ``` The top-level [`planDateInformation`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planDateInformation) object contains the coverage dates. Check the earliest ending `plan`, `eligibility`, `planEnd`, `eligibilityEnd`, `policyEffective`, or `policyExpiration` value. The following example shows a health plan that began on January 1, 2024 and ended on December 31, 2024. The patient was eligible for benefits under that health plan starting on January 2, 2024. {/* schema:PlanDateInformation:unwrap */} ```json "planDateInformation": { "planBegin": "20240101", "planEnd": "20241231", "eligibilityBegin": "20240102" } ``` ### Plan dates for dependents [#plan-dates-for-dependents] Dependents can have different coverage dates than the subscriber due to qualifying life events, such as starting a new job or passing the age limit for coverage through their parent's plan. The subscriber and the dependent each have their own `dates` object, so Stedi maps them independently. When the patient is a dependent, check [`dependent.dates`](/healthcare/api-reference/post-eligibility-check#response.dependent.dates) for their coverage dates. The response contains a single top-level [`planDateInformation`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planDateInformation) object for both the subscriber and the dependent. When the payer sends dates that differ between them, Stedi includes only the dependent's dates and omits the subscriber's. ### Benefit-specific eligibility dates [#benefit-specific-eligibility-dates] When a benefit has its own dates, use those dates to determine the patient's eligibility for that benefit type instead of the plan-level coverage dates. Payers send benefit-specific dates when certain benefits within a plan have different activation rules or waiting periods than the overall plan coverage. This can happen in a variety of scenarios, including: - Employers may offer plans with benefits that activate based on employment duration or role. For example, medical coverage may start on the patient's hire date, but life insurance or disability coverage begins after 90 days. - Some plans require a delay before certain benefits start, even though the patient's general plan is active. For example, dental insurance may have a 6-month waiting period for major services (like crowns), but covers basic services (like cleanings) immediately. - Some government programs like Medicare split coverage (Part A, Part B, and Part D), each with its own effective date. - Patients may switch plans during open enrollment, and new benefits can have different effective dates. Every benefit type can include its own `dates` object, such as [`plans[].benefits.deductible[].dates`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.deductible.dates). Check `benefit` for the dates that apply to that benefit. The following example shows a dental deductible that applies from July 1, 2024 through the end of the year, even though the patient's plan began earlier. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "deductible": [ { "amount": "1000", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "35", "definition": "Dental Care" }, "dates": { "benefit": { "start": "2024-07-01", "end": "2024-12-31" } } } ] } } ] ``` The [`benefitsInformation[].benefitsDateInformation`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsDateInformation) object contains benefit-specific dates. Begin and end dates are separate properties, such as `benefitBegin` and `benefitEnd`. The following example shows a dental deductible that applies from July 1, 2024 through the end of the year, even though the patient's plan began earlier. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "C", "name": "Deductible", "serviceTypeCodes": ["35"], "serviceTypes": ["Dental Care"], "benefitAmount": "1000", "benefitsDateInformation": { "benefitBegin": "20240701", "benefitEnd": "20241231" } } ] ``` ## What are the patient's benefits? [#what-are-the-patients-benefits] A response usually contains many benefit entries for one or more of the patient's health plans. To understand the patient's benefits, look for three things in the response: 1. **Coverage status:** Whether the patient has [active or inactive coverage](#active-and-inactive-coverage) for a service. 1. **Benefit types:** Which [benefit types](#benefit-types) the response includes, such as co-payments, deductibles, and exclusions. 1. **Service type codes:** Which [service type code](#service-type-codes) applies to each benefit type. ### Active and inactive coverage [#active-and-inactive-coverage] A response doesn't always include an explicit coverage status for every service. When the response includes any benefit for a service, you can assume the patient has active coverage for that service. For example, when the response includes a co-payment for service type code `30`, you can assume active coverage for that service type. When the payer does report coverage status, a patient can have active coverage for some services and inactive coverage for others. Check the [`plans[].benefits.statuses`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.statuses) array. Each entry's `status` property reports coverage for the service in that entry's `service` object. Values beginning with `ACTIVE` indicate active coverage, and values beginning with `INACTIVE` indicate inactive coverage. The following example shows active coverage for service type code `30` (Health Benefit Plan Coverage). {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "planCoverageDescription": "Open Access Plus" } ] } } ] ``` The following example shows inactive coverage for the same service type. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "INACTIVE", "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" } } ] } } ] ``` Check the `benefitsInformation` array. An entry's `code` property reports coverage status for the service types in its `serviceTypeCodes` array. Codes `1` - `5` indicate active coverage, and codes `6` - `8` indicate inactive coverage. The following example shows a member with active coverage for service type code `30` (Health Benefit Plan Coverage). {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "planCoverage": "Gold Plan HMO", "authOrCertIndicator": "Y", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsRelatedEntity": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "entityName": "UNITEDHEALTHCARE", "entityIdentification": "PI", "entityIdentificationValue": "87726" } } ] ``` The following example shows a member with inactive coverage for the same service type. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "6", "name": "Inactive", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" } ] ``` ### Benefit types [#benefit-types] A response can include many entries across several benefit types, such as co-payments, deductibles, and exclusions. How you find the benefit types you care about depends on the response shape. A benefit's network indicator reports whether that benefit applies to in-network or out-of-network providers. It doesn't tell you whether the provider who requested the eligibility check is in-network for the health plan, so don't assume an in-network cost applies to that provider until you verify their network status. Visit [Provider network status, authorizations, referrals](/healthcare/eligibility-network-status-authorization-referrals) for more details. The [`plans[].benefits`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits) object contains the benefits, where each kind of benefit is its own named array. The `statuses` array reports whether the patient has coverage, and the remaining arrays describe specific benefits. The following example shows a member with active coverage for service type code `30` (Health Benefit Plan Coverage), along with a co-payment for hospital room and board. The co-payment is $2,000 for providers considered in-network, as indicated by `IN_NETWORK` in the `network.indicator` property. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "EMPLOYEE_ONLY", "planCoverageDescription": "Humana Gold Plan", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "network": { "indicator": "IN_AND_OUT_OF_NETWORK" } } ], "coPayment": [ { "amount": "2000", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "49", "definition": "Hospital - Room and Board" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "ADMISSION", "messages": ["INPATIENT HOSPITAL ROOM AND BOARD"] } ] } } ] ``` The `benefitsInformation` array contains the benefits. The [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) property indicates the type of benefits information described in the object. Sometimes the code indicates that the patient has [active or inactive coverage](#active-and-inactive-coverage) for the `serviceTypes` listed. In other entries, the code indicates that the object contains details about specific benefits, such as co-payments, deductibles, and exclusions. The following example shows a patient's co-payment for psychiatric, psychotherapy, and social work in-office visits. The co-payment is $20 for providers considered in-network, as indicated by the `Y` in the [`inPlanNetworkIndicatorCode`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.inPlanNetworkIndicatorCode) property. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "B", "name": "Co-Payment", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["A4", "A6", "22"], "serviceTypes": ["Psychiatric", "Psychotherapy", "Social Work"], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "20", "authOrCertIndicator": "N", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "industryCode": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "industryCode": "Office" } ] } ] ``` #### Benefit type codes [#benefit-type-codes] Benefit type codes apply only to the `benefitsInformation` shape. The `plans` shape has no equivalent code, because each benefit type is its own named array. The benefit type code identifies the benefit type. It's different from the service type code, which identifies the service a benefit covers. Payers may send multiple entries for the same service type code with different benefit type codes, to communicate different aspects of the benefits. The following is a complete list of codes that can be returned in the `benefitsInformation[].code` property. - `1` - Active Coverage - `2` - Active - Full Risk Capitation - `3` - Active - Services Capitated - `4` - Active - Services Capitated to Primary Care Physician - `5` - Active - Pending Investigation - `6` - Inactive - `7` - Inactive - Pending Eligibility Update - `8` - Inactive - Pending Investigation - `A` - [Co-Insurance](/healthcare/eligibility-patient-responsibility-benefits#co-insurance) - `B` - [Co-Payment](/healthcare/eligibility-patient-responsibility-benefits#co-payment) - `C` - [Deductible](/healthcare/eligibility-patient-responsibility-benefits#deductible) - `CB` - Coverage Basis - `D` - Benefit Description - `E` - Exclusions - `F` - Limitations - `G` - [Out of Pocket (Stop Loss)](/healthcare/eligibility-patient-responsibility-benefits#out-of-pocket-stop-loss) - `H` - Unlimited - `I` - Non-Covered - `J` - [Cost Containment](/healthcare/eligibility-patient-responsibility-benefits#cost-containment) - `K` - Reserve - `L` - Primary Care Provider - `M` - Pre-existing Condition - `MC` - Managed Care Coordinator - `N` - Services Restricted to Following Provider - `O` - Not Deemed a Medical Necessity - `P` - Benefit Disclaimer - `Q` - Second Surgical Opinion Required - `R` - Other or Additional Payor - `S` - Prior Year(s) History - `T` - Card(s) Reported Lost/Stolen | Typically used by Medicaid to indicate to a provider that the person who has presented the ID card is using a stolen ID card. - `U` - Contact Following Entity for Eligibility or Benefit Information - `V` - Cannot Process - `W` - Other Source of Data - `X` - Health Care Facility - `Y` - [Spend Down](/healthcare/eligibility-patient-responsibility-benefits#spend-down) #### Cannot process [#cannot-process] A payer sometimes reports that it couldn't process part of your request. This doesn't mean the patient has no coverage for the service. It means the payer couldn't answer the question you asked, so you need to determine why before you rely on the response. These are the most common reasons: - **Request errors:** The payer didn't return any benefits information because of errors in the request, which appear in the `errors` array. Ignore the stub benefit data, correct the errors, and resubmit the eligibility check. - **Wrong submission method:** The payer doesn't support automated X12 EDI eligibility checks for the service type code you provided and requires that you obtain benefits information through a different channel, such as by phone or online portal. The payer typically explains this in a freeform message, and sometimes includes contact information. - **Unable to interpret:** The payer located the member but couldn't make sense of the request. For example, a dental payer can't return benefits information for a vision service type code. - **Alternate service type code:** The payer has grouped the service type code you submitted into a different one. In this case, the payer typically returns both a cannot-process entry and an entry reporting coverage for the code it prefers. Look for entries in the [`plans[].benefits.cannotProcess`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.cannotProcess) array. - The entry's `messages` array contains the payer's explanation. - `payer.contacts` contains contact information when the payer sends it. - For an alternate service type code, the payer typically returns a cannot-process entry immediately followed by an active coverage entry containing the preferred code. Stedi groups entries by type, so the preferred code appears in [`plans[].benefits.statuses[].service.value`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.statuses.service.value). Look for objects with a [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) of `V` (Cannot Process). - [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description) contains the payer's explanation. - [`payer.contactInformation`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.payer.contactInformation) contains contact information when the payer sends it. - For an alternate service type code, the payer typically returns a `code` = `V` entry immediately followed by an entry with an active code and [`benefitsInformation[].serviceTypeCodes`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.serviceTypeCodes) containing the preferred service type code. ### Service type codes [#service-type-codes] Service type codes (STCs) identify the services a benefit covers. Review the [service type code (STC) list](/healthcare/eligibility-stc-procedure-codes#full-stc-list) to determine which STCs are relevant to the benefits you're interested in and check for all of them in the response. This is helpful because the payer may return relevant benefits under a different STC than the one you submitted. For example, mental health benefits are typically returned with STC `MH` (Mental Health), but some payers may use other STCs, such as `A4` (Psychiatric), `CF` (Mental Health Provider - Outpatient), or `AI` (Substance Abuse) for related services. Each benefit includes one `service` object. Its `system` property identifies the code system, `value` the code, and `definition` the code's name. Stedi populates `definition` for service type codes, but not for procedure codes such as `CDT`, `CPT`, and `HCPCS`, so you need your own lookup for those. When a benefit applies to several services, Stedi returns a separate entry for each. The following entries all apply to service type code `CF` (Mental Health Provider - Outpatient), but each appears in a different benefit array, describing a different aspect of the benefits: - The `statuses` entry reports that the patient has active coverage for outpatient mental health services. - The `deductible` entry reports a $1,000 deductible for those services. - The `benefitDescription` entry qualifies the coverage. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "CF", "definition": "Mental Health Provider - Outpatient" }, "network": { "indicator": "IN_NETWORK" }, "messages": [ "INCLUSIONS SPEECH/PHYSICAL/OCCUPATIONAL THERAPY; APPLIED BEHAVIOR ANALYSIS (ABA)" ] } ], "deductible": [ { "amount": "1000", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "CF", "definition": "Mental Health Provider - Outpatient" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "CALENDAR_YEAR" } ], "benefitDescription": [ { "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "CF", "definition": "Mental Health Provider - Outpatient" }, "messages": ["EXCLUSIONS: DEVELOPMENTAL TESTING, EDUCATIONAL THERAPY"] } ] } } ] ``` The [`benefitsInformation[].serviceTypeCodes`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.serviceTypeCodes) property contains the service type codes that apply to the benefit, and `serviceTypes` contains their names. Check all `benefitsInformation` objects with relevant `serviceTypeCodes` values, because the same service type code (STC) is typically repeated across multiple objects in the response. - Each object communicates a different aspect of benefits, such as coverage status, co-pays, or deductibles. - Payers also use multiple objects to describe different subsets of services within an STC. For example, the `MH` STC can have one entry for standard therapy and another that notes coverage for other treatments. The following three `benefitsInformation` objects all have a `serviceTypeCodes` value of `CF` (Mental Health Provider - Outpatient), but each has a different `code`, describing a different aspect of the benefits: - The first object has `code` = `1`, reporting active coverage for outpatient mental health services. - The second object has `code` = `C`, reporting a $1,000 deductible for those services. - The third object has `code` = `D`, qualifying the coverage. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["CF"], "serviceTypes": [ "Mental Health Provider - Outpatient" ], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "INCLUSIONS SPEECH/PHYSICAL/OCCUPATIONAL THERAPY; APPLIED BEHAVIOR ANALYSIS (ABA)" } ] }, { "code": "C", "name": "Deductible", "serviceTypeCodes": ["CF"], "serviceTypes": [ "Mental Health Provider - Outpatient" ], "benefitAmount": "1000", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" }, { "code": "D", "name": "Benefit Description", "serviceTypeCodes": ["CF"], "serviceTypes": [ "Mental Health Provider - Outpatient" ], "additionalInformation": [ { "description": "EXCLUSIONS: DEVELOPMENTAL TESTING, EDUCATIONAL THERAPY" } ] } ] ``` ### Carveout benefits [#carveout-benefits] A carveout is when the primary payer for a plan lets another entity handle certain benefits. Carveout administrators often specialize in benefits for a particular service, such as mental health services or pharmacy benefits. For example, many Blue Cross Blue Shield (BCBS) plans carve out mental (behavioral) health benefits to Magellan, a mental health payer. Carveouts are part of a single health plan, so they're different from secondary or tertiary insurance coverage. A patient can have carveout benefits for their primary plan and still have secondary insurance coverage through other payers. Most payers omit carveout benefits from eligibility responses, but many include the carveout administrator's information. #### Carveout administrator information [#carveout-administrator-information] Don't rely on `relatedEntities[].type` to identify carveout administrators, because the value can vary between payers. Instead, look for entries in the [`plans[].benefits.contactFollowingEntityForInformation`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.contactFollowingEntityForInformation) or [`plans[].benefits.statuses`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.statuses) array that have: - A `service` object containing a [related service type code](#service-type-codes). - A `relatedEntities` object containing the administrator's name and contact information. - A `memberId` on that object, which contains the patient's member ID for the carveout administrator when the payer sends one. We recommend also examining [`plans[].benefits.benefitDescription`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.benefitDescription) entries. Their `messages` array sometimes contains relevant details. The following example shows a third-party administrator called Acme Health Payer handling a patient's mental health benefits (service type code `MH`). The `messages` array in the `benefitDescription` entry indicates that the administrator manages these benefits separately. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "contactFollowingEntityForInformation": [ { "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "MH", "definition": "Mental Health" }, "relatedEntities": [ { "type": "THIRD_PARTY_ADMINISTRATOR", "name": { "organization": "Acme Health Payer" }, "memberId": "123456789", "contacts": [ { "phoneNumbers": ["1234567890"] } ] } ] } ], "benefitDescription": [ { "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "MH", "definition": "Mental Health" }, "messages": ["BEHAVIORAL HEALTH MANAGED SEPARATELY"] } ] } } ] ``` Don't rely on `benefitsRelatedEntities[].entityIdentifier` to identify carveout administrators because the value can vary between payers. Instead, look for a `benefitsInformation` object that has: - `code` = `U` (Contact Following Entity for Eligibility or Benefit Information) or `code` = `1` (Active coverage). - `serviceTypeCodes` with [related STCs](#service-type-codes). - a `benefitsRelatedEntities` object containing contact information. If present, `benefitsRelatedEntities[].entityIdentificationValue` contains the patient's member ID for the carveout administrator. We recommend also examining `benefitsInformation` objects with `code` = `D` (Benefit Description). The `additionalInformation[].description` property may contain relevant details. The following example shows a benefits response for a patient whose mental health benefits (`serviceTypeCodes` = `MH`) are handled by a third-party administrator called Acme Health Payer. The `description` property in the second object indicates that these benefits are managed separately. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "U", "serviceTypeCodes": [ "MH" ], "benefitsRelatedEntities": [ { "entityIdentifier": "Third-Party Administrator", "entityType": "Non-Person Entity", "entityName": "Acme Health Payer", "entityIdentificationValue": "123456789", "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "1234567890" } ] } } ] }, { "code": "D", "serviceTypeCodes": ["MH"], "additionalInformation": [ { "description": "BEHAVIORAL HEALTH MANAGED SEPARATELY" } ] } ] ``` #### Get carveout benefits details [#get-carveout-benefits-details] When payers return carveout administrator information, you can: 1. Get the carveout administrator's payer ID from the [Payer Network](https://www.stedi.com/healthcare/network) or [Search Payers](/healthcare/api-reference/get-search-payers) endpoint. 2. Get the patient's member ID for the carveout administrator, if the payer returned one. In the `plans` shape, it's in `relatedEntities[].memberId`. In the `benefitsInformation` shape, it's in `benefitsRelatedEntities[].entityIdentificationValue`. 3. Send a second eligibility check to the carveout administrator. If you use the right STC, many carveout admins will return the missing carveout benefits. The STC may differ from the one you sent to the primary payer. Visit [STCs and procedure codes](/healthcare/eligibility-stc-procedure-codes) for tips on choosing the right STC. If the primary payer doesn't return the carveout administrator's details, you can try checking the patient's member ID card. The back of the card often lists the carveout administrator's name and contact information. You can also try calling the primary payer and checking their website or portal. ### Pharmacy benefits [#pharmacy-benefits] Some payers include benefits for STC `88` (Pharmacy) in eligibility responses, but these entries usually only indicate that pharmacy coverage exists. They often don't include specific benefit details. These entries usually appear in the `statuses` array with a `status` of `ACTIVE_COVERAGE`. The following example shows a `statuses` entry indicating that the patient has active pharmacy benefits. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "planCoverageDescription": "Advantage Pharmacy", "service": { "system": "STC", "value": "88", "definition": "Pharmacy" } } ] } } ] ``` These entries usually have `code` = `1` (Active coverage). The following example shows a `benefitsInformation` object indicating that the patient has active pharmacy benefits. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "planCoverage": "Advantage Pharmacy", "serviceTypes": ["Pharmacy"], "serviceTypeCodes": ["88"], "code": "1", "name": "Active Coverage" } ] ``` However, some payers do return specific pharmacy benefit details, such as co-payments and out-of-pocket maximums. The following examples show a patient's [out of pocket (stop loss)](/healthcare/eligibility-patient-responsibility-benefits#out-of-pocket-stop-loss) benefit per calendar year for pharmacy services. This is the maximum amount the patient pays for covered pharmacy services in a year. The payer includes a note that the patient's co-payments count toward this out-of-pocket maximum. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "outOfPocket": [ { "amount": "6000", "coverageLevel": "FAMILY", "service": { "system": "STC", "value": "88", "definition": "Pharmacy" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "CALENDAR_YEAR", "messages": ["Copay does apply to member's out-of-pocket maximum"] } ] } } ] ``` {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": ["88"], "serviceTypes": ["Pharmacy"], "benefitAmount": "6000", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "additionalInformation": [ { "description": "Copay does apply to member's out-of-pocket maximum" } ] } ] ``` #### Pharmacy Benefits Manager [#pharmacy-benefits-manager] Pharmacy benefits are often handled by a Pharmacy Benefits Manager (PBM), a company separate from the payer. Information for the plan's PBM is often (but not always) returned in a `relatedEntities` object. Don't rely solely on `relatedEntities[].type` to identify PBMs, because the value can vary between payers. Review the object's `name` and `contacts` properties to confirm that the entity is a PBM. The following example shows a `relatedEntities` object indicating that a third-party administrator called Acme Pharmacy Services manages the patient's pharmacy benefits. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "contactFollowingEntityForInformation": [ { "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "88", "definition": "Pharmacy" }, "relatedEntities": [ { "type": "THIRD_PARTY_ADMINISTRATOR", "name": { "organization": "Acme Pharmacy Services" }, "contacts": [ { "phoneNumbers": ["1234567890"] } ] } ] } ] } } ] ``` Information for the plan's PBM is often (but not always) returned in a `benefitsRelatedEntities` object. Don't rely solely on the `benefitsRelatedEntities[].entityIdentifier` field to identify PBMs because the value can vary between payers. Review the `entityName` and `contactInformation` to confirm that the entity is a PBM. The following example shows a benefits response indicating that a third-party administrator called Acme Pharmacy Services manages the patient's pharmacy benefits. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "U", "name": "Contact Following Entity for Eligibility or Benefit Information", "serviceTypeCodes": ["88"], "serviceTypes": ["Pharmacy"], "benefitsRelatedEntities": [ { "entityIdentifier": "Third-Party Administrator", "entityType": "Non-Person Entity", "entityName": "Acme Pharmacy Services", "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "1234567890" } ] } } ] } ] ``` #### RxBINs and RxPCNs [#rxbins-and-rxpcns] Pharmacy Bank Identification Numbers (RxBINs) and Processor Control Numbers (RxPCNs) tell pharmacies where to send claims. RxBINs and RxPCNs are often on the member's insurance card. Payers don't typically include these codes in eligibility responses. When the payer sends one, both response shapes return the requesting provider's processor number in `provider.pharmacyProcessorNumber`. The `plans` shape can also return a processor number for another entity, such as the PBM, in [`relatedEntities[].pharmacyProcessorNumber`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.contactFollowingEntityForInformation.relatedEntities.pharmacyProcessorNumber) on any benefit entry. ### Crossover coverage [#crossover-coverage] Crossover coverage is the process where a primary insurance payer (usually Medicare) automatically forwards claims and related information to a secondary payer (typically Medicaid or a supplemental private insurer) after processing. When there's crossover coverage, you won't need to manually resubmit claims to the secondary payer - it happens automatically. When the patient has crossover coverage, the eligibility response may contain information about crossover carriers, such as their names and identifiers. However, **don't** automatically assume the responding payer forwards crossover claims to those payers. Crossover carriers appear in a benefit's `relatedEntities` array. Check `relatedEntities[].type` for values such as `PRIMARY_PAYER`, `SECONDARY_PAYER`, or `ORIGIN_CARRIER`. The following example shows a patient with secondary coverage through a payer called Acme Secondary Health Plan. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "relatedEntities": [ { "type": "SECONDARY_PAYER", "name": { "organization": "Acme Secondary Health Plan" }, "address": { "addressLine1": "1 Acme Way", "city": "Anytown", "state": "CA", "postalCode": "12345" }, "contacts": [ { "phoneNumbers": ["1234567890"] } ] } ] } ] } } ] ``` Crossover carriers appear in the [`benefitsInformation[].benefitsRelatedEntities`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsRelatedEntities) array. Check `benefitsRelatedEntities[].entityIdentifier` for values such as `Primary Payer`, `Secondary Payer`, or `Origin Carrier`. The following example shows a patient with secondary coverage through a payer called Acme Secondary Health Plan. {/* schema:BenefitsInformation */} ```json { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "benefitsRelatedEntities": [ { "entityIdentifier": "Secondary Payer", "entityType": "Non-Person Entity", "entityName": "Acme Secondary Health Plan", "address": { "address1": "1 Acme Way", "city": "Anytown", "state": "CA", "postalCode": "12345" }, "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "1234567890" } ] } } ] } ``` To determine whether a claim went to a crossover carrier, review the 835 Electronic Remittance Advice (ERA). Visit [crossover claims](/healthcare/receive-claim-responses#crossover-claims) for more details. # Eligibility code lists Source: https://www.stedi.com/docs/healthcare/eligibility-code-lists Code lists for eligibility check requests and responses that are too long for the API reference, such as delivery frequency and benefit type codes. You may need to reference the following code lists when submitting eligibility checks through Stedi. Note that this page doesn't contain every code list in the eligibility request and response. It only contains code lists that are too long to represent clearly within the API reference documentation. ## Delivery Frequency Codes [#delivery-frequency-codes] This code specifies the routine shipments, deliveries, or calendar pattern. Stedi returns this code in the following properties: - `plans[].benefits.[].serviceLimits[].delivery.delivery.schedule`. Contains the name instead of the code. For example, `1` (1st Week of the Month) is `FIRST_WEEK_OF_THE_MONTH`. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].benefitsServiceDelivery[].deliveryOrCalendarPatternQualifierCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.benefitsServiceDelivery.deliveryOrCalendarPatternQualifierCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.benefitsServiceDelivery.deliveryOrCalendarPatternQualifierCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.benefitsServiceDelivery.deliveryOrCalendarPatternQualifierCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsServiceDelivery.deliveryOrCalendarPatternQualifierCode) Payers can send any of the following codes: - `1` - 1st Week of the Month - `2` - 2nd Week of the Month - `3` - 3rd Week of the Month - `4` - 4th Week of the Month - `5` - 5th Week of the Month - `6` - 1st & 3rd Weeks of the Month - `7` - 2nd & 4th Weeks of the Month - `8` - 1st Working Day of Period - `9` - Last Working Day of Period - `A` - Monday through Friday - `B` - Monday through Saturday - `C` - Monday through Sunday - `D` - Monday - `E` - Tuesday - `F` - Wednesday - `G` - Thursday - `H` - Friday - `J` - Saturday - `K` - Sunday - `L` - Monday through Thursday - `M` - Immediately - `N` - As Directed - `O` - Daily Mon. through Fri. - `P` - 1/2 Mon. & 1/2 Thurs. - `Q` - 1/2 Tues. & 1/2 Thurs. - `R` - 1/2 Wed. & 1/2 Fri. - `S` - Once Anytime Mon. through Fri. - `SG`- Tuesday through Friday - `SL` - Monday, Tuesday and Thursday - `SP` - Monday, Tuesday and Friday - `SX` - Wednesday and Thursday - `SY` - Monday, Wednesday and Thursday - `SZ` - Tuesday, Thursday and Friday - `T` - 1/2 Tue. & 1/2 Fri. - `U` - 1/2 Mon. & 1/2 Wed. - `V` - 1/3 Mon., 1/3 Wed., 1/3 Fri. - `W` - Whenever Necessary - `X` - 1/2 By Wed., Bal. By Fri. - `Y` - None (Also Used to Cancel or Override a Previous Pattern) ## Delivery Pattern Time Codes [#delivery-pattern-time-codes] This code specifies the time for routine shipments or deliveries. Stedi returns this code in the following properties: - `plans[].benefits.[].serviceLimits[].delivery.delivery.pattern`. Contains the name instead of the code. For example, `A` (1st Shift (Normal Working Hours)) is `FIRST_SHIFT`. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].benefitsServiceDelivery[].deliveryPatternTimeQualifierCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.benefitsServiceDelivery.deliveryPatternTimeQualifierCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.benefitsServiceDelivery.deliveryPatternTimeQualifierCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.benefitsServiceDelivery.deliveryPatternTimeQualifierCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsServiceDelivery.deliveryPatternTimeQualifierCode) Payers can send any of the following codes: - `A` - 1st Shift (Normal Working Hours) - `B` - 2nd Shift - `C` - 3rd Shift - `D` - A.M. - `E` - P.M. - `F` - As Directed - `G` - Any Shift - `Y` - None (Also Used to Cancel or Override a Previous Pattern) ## Eligibility and benefit type codes [#eligibility-and-benefit-type-codes] These codes identify the type of benefit, such as active coverage, a co-payment, or a deductible. They're different from service type codes, which identify the service a benefit covers. Stedi returns these codes in the following properties: - `plans[].benefits`. No equivalent property. The benefit type determines which array the entry appears in. For example, a `B` (Co-Payment) benefit appears in the `coPayment` array. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits) - `benefitsInformation[].code` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.code) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.code) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.code) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) Visit [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for a complete list. ## Employment Status Codes [#employment-status-codes] These codes indicate the employment status of the subscriber or dependent as it relates to military service. Stedi returns these codes in the following properties: - `subscriber.employmentStatusCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.subscriber.employmentStatusCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.subscriber.employmentStatusCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.subscriber.employmentStatusCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.subscriber.employmentStatusCode) - `dependents[].employmentStatusCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.dependents.employmentStatusCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.dependents.employmentStatusCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.dependents.employmentStatusCode) - `dependent.employmentStatusCode` Docs: [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.dependent.employmentStatusCode) Payers can send any of the following codes: - `AE` - Active Reserve - `AO` - Active Military - Overseas - `AS` - Academy Student - `AT` - Presidential Appointee - `AU` - Active Military - USA - `CC` - Contractor - `DD` - Dishonorably Discharged - `HD` - Honorably Discharged - `IR` - Inactive Reserves - `LX` - Leave of Absence: Military - `PE` - Plan to Enlist - `RE` - Recommissioned - `RM` - Retired Military - Overseas - `RR` - Retired Without Recall - `RU` - Retired Military - USA ## Government Service Affiliation Codes [#government-service-affiliation-codes] These codes indicate the government service affiliation of the subscriber or dependent as it relates to military service. Stedi returns these codes in the following properties: - `subscriber.governmentServiceAffiliationCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.subscriber.governmentServiceAffiliationCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.subscriber.governmentServiceAffiliationCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.subscriber.governmentServiceAffiliationCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.subscriber.governmentServiceAffiliationCode) - `dependents[].governmentServiceAffiliationCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.dependents.governmentServiceAffiliationCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.dependents.governmentServiceAffiliationCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.dependents.governmentServiceAffiliationCode) - `dependent.governmentServiceAffiliationCode` Docs: [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.dependent.governmentServiceAffiliationCode) Payers can send any of the following codes: - `A` - Air Force - `B` - Air Force Reserves - `C` - Army - `D` - Army Reserves - `E` - Coast Guard - `F` - Marine Corps - `G` - Marine Corps Reserves - `H` - National Guard - `I` - Navy - `J` - Navy Reserves - `K` - Other - `L` - Peace Corp - `M` - Regular Armed Forces - `N` - Reserves - `O` - U.S. Public Health Service - `Q` - Foreign Military - `R` - American Red Cross - `S` - Department of Defense - `U` - United Services Organization - `W` - Military Sealift Command ## Identification Code Qualifiers [#identification-code-qualifiers] These codes designate the type of identifier the payer sent for a related entity. Stedi returns these codes in the following properties: - `plans[].benefits.[].relatedEntities[]`. No equivalent property. The qualifier becomes the property name, such as `npi`. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].benefitsRelatedEntities[].entityIdentification` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.benefitsRelatedEntities.entityIdentification) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.benefitsRelatedEntities.entityIdentification) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.benefitsRelatedEntities.entityIdentification) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsRelatedEntities.entityIdentification) Payers can send any of the following codes: - `24` - Employer's Identification Number - `34` - Social Security Number - `46` - Electronic Transmitter Identification Number (ETIN) - `FA` - Facility Identification - `FI` - Federal Taxpayer's Identification Number - `II` - Standard Unique Health Identifier for each Individual in the United States - `MI` - Member Identification Number - `NI` - National Association of Insurance Commissioners (NAIC) Identification - `PI` - Payor Identification - `PP` - Pharmacy Processor Number - `SV` - Service Provider Number - `XV` - Centers for Medicare and Medicaid Services PlanID - `XX` - Centers for Medicare and Medicaid Services National Provider Identifier ## Industry Codes [#industry-codes] These codes identify the place of service for a benefit. Stedi returns these codes in the following properties: - `plans[].benefits.[].placesOfService[].code`. Contains the code itself, not the name. The `placesOfService[].name` property contains the name. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].eligibilityAdditionalInformationList[].industryCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.eligibilityAdditionalInformationList.industryCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.eligibilityAdditionalInformationList.industryCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.eligibilityAdditionalInformationList.industryCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.eligibilityAdditionalInformationList.industryCode) Visit the Centers for Medicare and Medicaid Services [Place of Service Code Set](https://www.cms.gov/medicare/coding-billing/place-of-service-codes/code-sets) for a complete list of codes and descriptions. ## Information Status Codes [#information-status-codes] These codes report military service data. Stedi returns these codes in the following properties: - `subscriber.informationStatusCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.subscriber.informationStatusCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.subscriber.informationStatusCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.subscriber.informationStatusCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.subscriber.informationStatusCode) - `dependents[].informationStatusCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.dependents.informationStatusCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.dependents.informationStatusCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.dependents.informationStatusCode) - `dependent.informationStatusCode` Docs: [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.dependent.informationStatusCode) Payers can send any of the following codes: - `A` - Partial - `C` - Current - `L` - Latest - `O` - Oldest - `P` - Prior - `S` - Second Most Current - `T` - Third Most Current ## Insurance Type Codes [#insurance-type-codes] These codes indicate the type of insurance policy within a specific insurance program. Stedi returns these codes in the following properties: - `plans[].benefits.[].insuranceType`. Contains the name instead of the code. For example, `MB` (Medicare Part B) is `MEDICARE_PART_B`. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].insuranceTypeCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.insuranceTypeCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.insuranceTypeCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.insuranceTypeCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.insuranceTypeCode) Payers can send any of the following codes: - `12` - Medicare Secondary Working Aged Beneficiary or Spouse with Employer Group Health Plan - `13` - Medicare Secondary End-Stage Renal Disease Beneficiary in the Mandated Coordination Period with an Employer's Group Health Plan - `14` - Medicare Secondary, No-fault Insurance including Auto is Primary - `15` - Medicare Secondary Worker's Compensation - `16` - Medicare Secondary Public Health Service (PHS) or Other Federal Agency - `41` - Medicare Secondary Black Lung - `42` - Medicare Secondary Veteran's Administration - `43` - Medicare Secondary Disabled Beneficiary Under Age 65 with Large Group Health Plan (LGHP) - `47` - Medicare Secondary, Other Liability Insurance is Primary - `AP` - Auto Insurance Policy - `C1` - Commercial - `CO` - Consolidated Omnibus Budget Reconciliation Act (COBRA) - `CP` - Medicare Conditionally Primary - `D` - Disability - `DB` - Disability Benefits - `EP` - Exclusive Provider Organization - `FF` - Family or Friends - `GP` - Group Policy - `HM` - Health Maintenance Organization (HMO) - `HN` - Health Maintenance Organization (HMO) - Medicare Risk - `HS` - Special Low Income Medicare Beneficiary - `IN` - Indemnity - `IP` - Individual Policy - `LC` - Long Term Care - `LD` - Long Term Policy - `LI` - Life Insurance - `LT` - Litigation - `MA` - Medicare Part A - `MB` - Medicare Part B - `MC` - Medicaid - `MH` - Medigap Part A - `MI` - Medigap Part B - `MP` - Medicare Primary - `OT` - Other | When this code is returned by Medicare or a Medicare Part D administrator, it indicates a type of insurance of Medicare Part D. - `PE` - Property Insurance - Personal - `PL` - Personal - `PP` - Personal Payment (Cash - No Insurance) - `PR` - Preferred Provider Organization (PPO) - `PS` - Point of Service (POS) - `QM` - Qualified Medicare Beneficiary - `RP` - Property Insurance - Real - `SP` - Supplemental Policy - `TF` - Tax Equity Fiscal Responsibility Act (TEFRA) - `WC` - Workers Compensation - `WU` - Wrap Up Policy ## Military Service Rank Codes [#military-service-rank-codes] These codes indicate the military service rank of the subscriber or dependent. Stedi returns these codes in the following properties: - `subscriber.militaryServiceRankCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.subscriber.militaryServiceRankCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.subscriber.militaryServiceRankCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.subscriber.militaryServiceRankCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.subscriber.militaryServiceRankCode) - `dependents[].militaryServiceRankCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.dependents.militaryServiceRankCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.dependents.militaryServiceRankCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.dependents.militaryServiceRankCode) - `dependent.militaryServiceRankCode` Docs: [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.dependent.militaryServiceRankCode) Payers can send any of the following codes: - `A1` - Admiral - `A2` - Airman - `A3` - Airman First Class - `B1` - Basic Airman - `B2` - Brigadier General - `C1` - Captain - `C2` - Chief Master Sergeant - `C3` - Chief Petty Officer - `C4` - Chief Warrant - `C5` - Colonel - `C6` - Commander - `C7` - Commodore - `C8` - Corporal - `C9` - Corporal Specialist 4 - `E1` - Ensign - `F1` - First Lieutenant - `F2` - First Sergeant - `F3` - First Sergeant-Master Sergeant - `F4` - Fleet Admiral - `G1` - General - `G4` - Gunnery Sergeant - `L1` - Lance Corporal - `L2` - Lieutenant - `L3` - Lieutenant Colonel - `L4` - Lieutenant Commander - `L5` - Lieutenant General - `L6` - Lieutenant Junior Grade - `M1` - Major - `M2` - Major General - `M3` - Master Chief Petty Officer - `M4` - Master Gunnery Sergeant Major - `M5` - Master Sergeant - `M6` - Master Sergeant Specialist 8 - `P1` - Petty Officer First Class - `P2` - Petty Officer Second Class - `P3` - Petty Officer Third Class - `P4` - Private - `P5` - Private First Class - `R1` - Rear Admiral - `R2` - Recruit - `S1` - Seaman - `S2` - Seaman Apprentice - `S3` - Seaman Recruit - `S4` - Second Lieutenant - `S5` - Senior Chief Petty Officer - `S6` - Senior Master Sergeant - `S7` - Sergeant - `S8` - Sergeant First Class Specialist 7 - `S9` - Sergeant Major Specialist 9 - `SA` - Sergeant Specialist 5 - `SB` - Staff Sergeant - `SC` - Staff Sergeant Specialist 6 - `T1` - Technical Sergeant - `V1` - Vice Admiral - `W1` - Warrant Officer ## Provider Codes [#provider-codes] These codes indicate the type of provider. Stedi returns these codes in the following properties: - `plans[].benefits.[].relatedEntities[].provider.code`. Contains the name instead of the code. For example, `AD` (Admitting) is `ADMITTING`. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].benefitsRelatedEntities[].providerInformation.providerCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.benefitsRelatedEntities.providerInformation.providerCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.benefitsRelatedEntities.providerInformation.providerCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.benefitsRelatedEntities.providerInformation.providerCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsRelatedEntities.providerInformation.providerCode) Payers can send any of the following codes: - `AD` - Admitting - `AT` - Attending - `BI` - Billing - `CO` - Consulting - `CV` - Covering - `H` - Hospital - `HH` - Home Health Care - `LA` - Laboratory - `OT` - Other Physician - `P1` - Pharmacist - `P2` - Pharmacy - `PC` - Primary Care Physician - `PE` - Performing - `R` - Rural Health Clinic - `RF` - Referring - `SB` - Submitting - `SK` - Skilled Nursing Facility - `SU` - Supervising ## Quantity Qualifier Codes [#quantity-qualifier-codes] These codes provide more information about the type of quantity. Stedi returns these codes in the following properties: - `plans[].benefits.[].quantity.qualifier`. Contains the name instead of the code. For example, `VS` (Visits) is `VISITS`. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].quantityQualifierCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.quantityQualifierCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.quantityQualifierCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.quantityQualifierCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.quantityQualifierCode) Payers can send any of the following codes: - `8H` - Minimum - `99` - Quantity Used - `CA` - Covered - Actual - `CE` - Covered - Estimated - `D3` - Number of Co-insurance Days - `DB` - Deductible Blood Units - `DY` - Days - `HS` - Hours - `LA` - Life-time Reserve - Actual - `LE` - Life-time Reserve - Estimated - `M2` - Maximum - `MN` - Month - `P6` - Number of Services or Procedures - `QA` - Quantity Approved - `S7` - Age, High Value | Use this code when a benefit is based on a maximum age for the patient. - `S8` - Age, Low Value | Use this code when a benefit is based on a minimum age for the patient. - `VS` - Visits - `YY` - Years ## Service Type Codes [#service-type-codes] These codes identify the services a benefit covers. Stedi returns these codes in the following properties: - `plans[].benefits.[].service.value`. Contains the code itself, not the name. The `service.definition` property contains the name. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].serviceTypeCodes` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.serviceTypeCodes) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.serviceTypeCodes) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.serviceTypeCodes) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.serviceTypeCodes) Visit [Service Type Codes](/healthcare/eligibility-stc-procedure-codes#full-stc-list) for a complete list. This list is specific to X12 version 005010, the mandated version for eligibility checks. It differs from the current [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers shouldn't send service type codes not explicitly listed in version 005010. ## Time Qualifier Codes [#time-qualifier-codes] These codes provide more information about the time period to which the benefit applies. Stedi returns these codes in the following properties: - `plans[].benefits.[].timePeriod` and `plans[].benefits.[].serviceLimits[].delivery.period.qualifier`. Both contain the name instead of the code. For example, `23` (Calendar Year) is `CALENDAR_YEAR`. Docs: [JSON](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Appears across benefit types in `plans[].benefits`. - `benefitsInformation[].timeQualifierCode` Docs: [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.benefitsInformation.timeQualifierCode) | [Poll Batch Checks](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.timeQualifierCode) | [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery#response.items.benefitsInformation.timeQualifierCode) | [JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.timeQualifierCode) Payers can send any of the following codes: - `6` - Hour - `7` - Day - `13` - 24 Hours - `21` - Years - `22` - Service Year - `23` - Calendar Year - `24` - Year to Date - `25` - Contract - `26` - Episode - `27` - Visit - `28` - Outlier - `29` - Remaining - `30` - Exceeded - `31` - Not Exceeded - `32` - Lifetime - `33` - Lifetime Remaining - `34` - Month - `35` - Week - `36` - Admission # Provider network status, authorizations, referrals Source: https://www.stedi.com/docs/healthcare/eligibility-network-status-authorization-referrals You have a few options for determining whether the requesting provider is in- or out-of-network for the patient. The most reliable method is contacting the payer or provider directly. You can also use the benefit entries in the eligibility response to determine whether prior authorization or a referral is required for requested services. ## Response shapes [#response-shapes] Stedi returns one of two [response shapes](/healthcare/eligibility-response-shapes), depending on the endpoint you called. Both contain the same benefits information, organized differently. You can identify them by the top-level array that organizes the patient's benefits information - either `plans` or `benefitsInformation`. | Top-level array | Endpoints | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `plans` | [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) | | `benefitsInformation` | [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) | Every section on this page covers both response shapes, labeled `plans` and `benefitsInformation`. Select the label that matches the endpoint you called, and the page applies your selection to every section. ## Is the provider in- or out-of-network? [#is-the-provider-in--or-out-of-network] Unfortunately, you can't reliably determine whether the requesting provider is in- or out-of-network from a standard eligibility response. Payers typically don't indicate it explicitly, though there are some [exceptions](#additional-network-status-details). You also can't use the [network indicator](#in-plan-network-indicator) for this purpose. It indicates whether the specific benefit type applies to in- versus out-of-network, not the requesting provider. The most reliable way to determine network status is to check directly with the payer or the provider. Note that payers may have different networks for different health plans, such as employer-sponsored plans versus Medicare Advantage, and these networks may have different contact paths. ### Payer FHIR APIs [#payer-fhir-apis] Some payers have implemented the HL7 Da Vinci PDEX Plan Net (FHIR) API, which allows you to query directly for provider network status. Here are links to these APIs for a few large, commercial payers: - [Aetna](https://developerportal.aetna.com/welcome) - [Cigna](https://developer.cigna.com/docs/service-apis) - [Humana](https://developers.humana.com/provider-directory-api/doc) - [UnitedHealthcare](https://www.uhc.com/legal/interoperability-apis) This is not an exhaustive list, and we provide these links for convenience and reference only. Stedi can't give any additional support on how to use third-party APIs. ### Additional network status details [#additional-network-status-details] Some payers do provide additional information about whether the requesting provider is in- or out-of-network. They may do this through either selective inclusion of benefits in the response or through freeform messages. #### Selective inclusion of benefits [#selective-inclusion-of-benefits] A small subset of payers selectively include portions of the eligibility response according to the provider's network status. For example, some payers only return out-of-network benefits if the requesting provider is out-of-network. Likewise, if the provider is in-network, they only provide in-network benefits. One example is Blue Cross and Blue Shield of New Mexico (BCBSNM). Their [270/271 Transaction Standard Companion Guide](https://www.bcbsnm.com/docs/provider/nm/nm_eligibility_benefits_270_271.pdf) states in section 5.3: > "When local transactions are submitted, BCBSNM uses the provider type and/or provider specialty along with the providers contracting network status to determine the applicable benefits." Stedi doesn't have a complete list of payers that selectively include or exclude benefits based on the provider's network status. The most reliable way to determine network status is to reach out to the provider or payer directly. #### Freeform messages [#freeform-messages] While uncommon, some payers communicate information about the requesting provider's network status using freeform messages. For example, Cigna's [270/271 Companion Guide](https://www.cigna.com/static/www-cigna-com/docs/5010-270-271-companion-guide.pdf) states: > "When the requestor's network participation status can be determined, Cigna will send a Message on the EB1\*30 Row that indicates either the Health Care Professional (or facility) is in or out of the customer's medical network." In Stedi's eligibility response, these freeform messages typically arrive in the benefit entry's `messages` array for the `plans` shape, or in [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description) for the `benefitsInformation` shape. For example: - `PROVIDER IS OUT NETWORK FOR MEMBER` - `BENEFITS RETURNED BASED ON NON-AFFILIATED PROVIDER STATUS` These messages may also contain information about network tier levels, since some plans have more complex benefit structures with reduced patient responsibility for higher-tier providers. **These freeform messages are not standardized across payers and may even differ across plans for the same payer.** Again, the most reliable way to determine network status is to reach out to the provider or payer directly. ### In Plan Network Indicator [#in-plan-network-indicator] The X12 EDI 271 eligibility response includes a data element called `EB12` (In Plan Network Indicator). Both response shapes surface this element, under different property names. Counterintuitively, **this value doesn't indicate whether the provider is in- or out-of-network for the patient's health plan.** It specifies whether the specific benefit type applies to in- versus out-of-network. Most payers include information about both the patient's in- and out-of-network coverage and benefits in the response, regardless of the requesting provider's network status. Stedi represents this element as the `network.indicator` property on each benefit entry. The property contains one of the following values: - `IN_NETWORK` - `OUT_OF_NETWORK` - `IN_AND_OUT_OF_NETWORK` - The benefit applies to **both** in- and out-of-network providers. Payers sometimes send other values, most commonly `U` (unknown). Stedi passes these through as-is, so you can receive a `network.indicator` of `U`, which means it's unknown whether the benefit applies to in- or out-of-network providers. The following example shows the patient's out-of-network deductible for the calendar year, which is $7,500. The `network.indicator` of `OUT_OF_NETWORK` indicates that the deductible applies to services performed by providers outside the patient's network. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "deductible": [ { "amount": "7500", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "network": { "indicator": "OUT_OF_NETWORK" }, "timePeriod": "CALENDAR_YEAR" } ] } } ] ``` Stedi represents this element as the [`benefitsInformation[].inPlanNetworkIndicatorCode`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.inPlanNetworkIndicatorCode) property. Payers can send the following `inPlanNetworkIndicatorCode` values: - `Y` - Yes - `N` - No - `W` - Not Applicable. The benefit applies to **both** in- and out-of-network providers. - `U` - Unknown. It's unknown whether the benefit applies to in- or out-of-network providers. The example `benefitsInformation` object below shows the patient's out-of-network deductible for the calendar year, which is $7,500. The `inPlanNetworkIndicatorCode` is `N`, indicating that the deductible is applicable to services performed by providers outside the patient's network. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "C", "name": "Deductible", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "7500", "inPlanNetworkIndicatorCode": "N", "inPlanNetworkIndicator": "No" } ] ``` ## Is prior authorization required? [#is-prior-authorization-required] Prior authorization (also called pre-authorization or pre-certification) is a requirement that the patient or their provider must get approval before a payer will cover specific services, procedures, medications, or devices. Without it, the payer may deny claims. For example, some payers require prior authorization for: - Elective surgeries, such as joint replacements - Advanced imaging, such as MRIs or CT scans - Step therapy, where a patient must try lower-cost treatments before the payer approves a higher-cost one Payers indicate whether prior authorization is required for the service type code in the eligibility check. They sometimes send a value meaning the requirement is unknown, most commonly `U`. Learn more about [unknown prior authorization requirements](#handling-u-unknown). Payers sometimes send incomplete or inaccurate prior authorization information, and Stedi can't control what they send. An eligibility response isn't a guarantee of payment, so verify requirements with the payer when the response doesn't establish them. Each benefit entry's `priorAuthIndicator` property contains one of the following values: - `REQUIRED` indicates that prior authorization is required. - `NOT_REQUIRED` indicates that prior authorization is not required. Payers sometimes send other values, most commonly `U` (unknown). Stedi passes these through as-is, so you can receive a `priorAuthIndicator` of `U`. If you don't receive the `priorAuthIndicator` property in the response, you can typically assume that prior authorization is not required. The following example shows that prior authorization is required for anesthesia services. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "coInsurance": [ { "percent": "0.2", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "7", "definition": "Anesthesia" }, "timePeriod": "CALENDAR_YEAR", "priorAuthIndicator": "REQUIRED" } ] } } ] ``` Payers use the [`benefitsInformation[].authOrCertIndicator`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.authOrCertIndicator) property to indicate whether prior authorization is required for the service type code in the eligibility check. It can have the following values: - `Y` indicates that prior authorization is required. - `N` indicates that prior authorization is not required. - `U` indicates that the payer is unable to confirm whether or not prior authorization is required. If you don't receive the `benefitsInformation[].authOrCertIndicator` property in the response, you can typically assume that prior authorization is not required. The following example `benefitsInformation` object shows that prior authorization is required for anesthesia services. {/* schema:BenefitsInformation */} ```json { "code": "A", "name": "Co-Insurance", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["7"], "serviceTypes": ["Anesthesia"], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitPercent": ".20", "authOrCertIndicator": "Y" } ``` ### Authorization notes [#authorization-notes] Some payers send additional notes about prior authorization rules in their freeform messages. They sometimes send these notes on a separate entry, typically a coverage status, coverage basis, or benefit description type. Look for these notes in the benefit entry's `messages` array. When the payer sends them on a separate entry, that entry appears in the `statuses`, `coverageBasis`, or `benefitDescription` array. The following example shows a `coverageBasis` entry containing additional information about prior authorization requirements for imaging services. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "coverageBasis": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "messages": ["PRECERTIFICATION REQUIRED FOR PET SCANS, CT/CTA SCANS, MRI/MRA SCANS."] } ] } } ] ``` Look for these notes in [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description). When the payer sends them on a separate object, that object has a `code` of `1` (Active Coverage), `CB` (Coverage Basis), or `D` (Benefit Description). The following example shows a `code` = `CB` object containing additional information about prior authorization requirements for imaging services. {/* schema:BenefitsInformation */} ```json { "code": "CB", "name": "Coverage Basis", "coverageLevelCode": "IND", "coverageLevel": "Individual", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "additionalInformation": [ { "description": "PRECERTIFICATION REQUIRED FOR PET SCANS, CT/CTA SCANS, MRI/MRA SCANS." } ] } ``` ### Handling `U` (unknown) [#handling-u-unknown] Both response shapes surface `U`, in `priorAuthIndicator` for the `plans` shape and in [`authOrCertIndicator`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.authOrCertIndicator) for the `benefitsInformation` shape. Handle it the same way in both. When either property is `U` (unknown), it means the payer can't determine in real time whether prior authorization is required for the service. The payer may require additional details, like diagnosis or place of service, that you can't provide using an eligibility check. In these cases, do the following: - Check the payer's freeform messages for any clarification on prior authorization requirements. These arrive in the benefit entry's `messages` array for the `plans` shape, or in [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description) for the `benefitsInformation` shape. Also check other benefit entries, which sometimes contain additional information. - Call the payer or use the payer's provider portal to see if you can get more information. You can use an AI voice agent or screen scraper to do this programmatically. - Use a third-party prior authorization platform. Stedi's [Platform Partner directory](https://www.stedi.com/platform-partners) includes trusted vendors that can help you get prior authorization details that aren't available through an eligibility check. - If your payer has implemented the [HL7 Da Vinci Coverage Requirements Discovery (CRD) FHIR API](https://hl7.org/fhir/us/davinci-crd/STU2/), you can query it to determine whether a specific service requires prior authorization. For example, here's the link to [Aetna's Prior Authorization APIs](https://developerportal.aetna.com/fhirapis). ### Gold carding [#gold-carding] Some payers offer "gold carding" programs that let certain providers skip prior authorization requirements. In some cases, gold carding is required by state law. Unfortunately, you can't reliably get a provider's gold card status from an eligibility response. If you think a provider may qualify, check directly with the payer or provider. ### Prior authorization status [#prior-authorization-status] Payers typically don't indicate whether the requesting provider has obtained prior authorization for services that require it. Instead, they indicate whether prior authorization is required for a specific service type code (STC) or procedure code. If you need to check the status of an existing prior authorization, contact the payer directly or use their provider portal if they have one. ## Is a referral required? [#is-a-referral-required] A referral is a written or electronic authorization from a primary care provider (PCP) to see a specialist or receive certain services. Some health plans won't cover specialty care without a referral. Payers aren't required to provide information about whether referrals are required for benefits, and we can't provide a definitive list of payers who do. When a payer includes this information, you can find it in their freeform messages: the benefit entry's `messages` array for the `plans` shape, or [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description) for the `benefitsInformation` shape. You're more likely to receive referral information for members with HMO plans. ## Primary care provider (PCP) [#primary-care-provider-pcp] A PCP is the main healthcare provider responsible for managing a patient's care and coordinating referrals to specialists. Some payers include the patient's PCP information in eligibility responses, but this is payer-dependent and not guaranteed. When a payer returns PCP information, it appears on a benefit entry. - The entry appears in the [`plans[].benefits.primaryCareProvider`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.primaryCareProvider) array. - The PCP's details appear in a `relatedEntities` object with `type` set to `PRIMARY_CARE_PROVIDER`. - If the PCP is an individual, `name.person` contains their `firstName` and `lastName`. If the PCP is an organization, `name.organization` contains the organization name. The following example shows that the patient's assigned PCP is an organization called Acme Physician Group. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "primaryCareProvider": [ { "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "relatedEntities": [ { "type": "PRIMARY_CARE_PROVIDER", "name": { "organization": "Acme Physician Group" } } ] } ] } } ] ``` When a payer returns PCP information, it appears in the `benefitsInformation` array. - The [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) is usually set to `L` (Primary Care Provider). - The PCP's details appear in a `benefitsRelatedEntities` object with `entityIdentifier` set to `Primary Care Provider`. - If the PCP is an individual, their first and last name appear in the `entityFirstname` and `entityName` properties. If the PCP is an organization, the organization name appears in `entityName`. The following example shows a benefits response indicating the patient's assigned PCP is an organization called Acme Physician Group. {/* schema:BenefitsInformation */} ```json { "code": "L", "name": "Primary Care Provider", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "benefitsRelatedEntities": [ { "entityIdentifier": "Primary Care Provider", "entityType": "Non-Person Entity", "entityName": "Acme Physician Group" } ] } ``` # Patient responsibility Source: https://www.stedi.com/docs/healthcare/eligibility-patient-responsibility-benefits Some benefits require the patient to pay a portion of the cost of care, also known as patient responsibility. For example, a patient may have a co-payment for in-office visits. ## Response shapes [#response-shapes] Stedi returns one of two [response shapes](/healthcare/eligibility-response-shapes), depending on the endpoint you called. Both contain the same benefits information, organized differently. You can identify them by the top-level array that organizes the patient's benefits information - either `plans` or `benefitsInformation`. | Top-level array | Endpoints | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `plans` | [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) | | `benefitsInformation` | [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) | Every section on this page covers both response shapes, labeled `plans` and `benefitsInformation`. Select the label that matches the endpoint you called, and the page applies your selection to every section. ## Where can I find patient responsibility? [#where-can-i-find-patient-responsibility] Patient responsibility appears in the benefit entries for co-insurance, co-payments, deductibles, limitations, out of pocket, and spend down. These entries almost always include either an amount or a percentage that indicates what the patient owes. Read the named arrays under [`plans[].benefits`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits): `coInsurance`, `coPayment`, `costContainment`, `deductible`, `limitations`, `outOfPocket`, and `spendDown`. Each entry's `amount` or `percent` property contains the patient's responsibility. The following example shows three different types of patient responsibility: - **Co-payment:** The `coPayment` entry shows that the patient's co-payment for pharmacy services is $10 for in-network providers. - **Deductible:** The `deductible` entry shows that the patient's deductible for general medical services is $1,000 per calendar year for in-network providers. - **Co-insurance:** The `coInsurance` entry shows that the patient's co-insurance for out-of-network dental care is 0% for `CDT` procedure code `D0150` (comprehensive oral evaluation). {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "coPayment": [ { "amount": "10", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "88", "definition": "Pharmacy" }, "network": { "indicator": "IN_NETWORK" } } ], "deductible": [ { "amount": "1000", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "CALENDAR_YEAR" } ], "coInsurance": [ { "percent": "0", "coverageLevel": "INDIVIDUAL", "service": { "system": "CDT", "value": "D0150" }, "network": { "indicator": "OUT_OF_NETWORK" }, "dates": { "latestVisit": { "start": "2024-04-04" } } } ] } } ] ``` Use `benefitsInformation` objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) values `A`, `B`, `C`, `F`, `G`, and `Y` to determine the patient's financial responsibility for a given service type code (STC). These objects almost always contain either a `benefitAmount` or `benefitPercent` property that indicates the patient's responsibility. The following example shows three different types of patient responsibility: - **Co-Payment:** The object with the `code` set to `B` shows that the patient's co-payment for pharmacy services is $10 for in-network providers. - **Deductible:** The object with the `code` set to `C` shows that the patient's deductible for general medical services is $1,000 per calendar year for in-network providers. - **Co-Insurance:** The object with the `code` set to `A` shows that the patient's co-insurance for out-of-network dental care is 0% for `CDT` procedure code `D0150` (comprehensive oral evaluation). The plan allows one visit every 6 months, and their last visit was on April 4, 2024. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [{ "code": "B", "name": "Co-Payment", "serviceTypeCodes": ["88"], "serviceTypes": ["Pharmacy"], "benefitAmount": "10", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" }, { "code": "C", "name": "Deductible", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "1000", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" }, { "code": "A", "name": "Co-Insurance", "serviceTypeCodes": ["35"], "serviceTypes": ["Dental Care"], "benefitPercent": "0", "inPlanNetworkIndicatorCode": "N", "inPlanNetworkIndicator": "No", "compositeMedicalProcedureIdentifier": { "productOrServiceIDQualifierCode": "AD", "productOrServiceIDQualifier": "American Dental Association", "procedureCode": "D0150" }, "benefitsDateInformation": { "latestVisitOrConsultation": "20240404" }, "benefitsServiceDelivery": [ { "quantityQualifierCode": "VS", "quantityQualifier": "Visits", "quantity": "1", "timePeriodQualifierCode": "34", "timePeriodQualifier": "Month", "numOfPeriods": "6" } ] }] ``` ### Service history [#service-history] Some benefits have frequency limits. For example, "one visit every 6 months" or "two cleanings per year." Others depend on when the patient last received the service. If the patient has already reached the allowed frequency, the next visit may not be covered. In that case, they may owe the full amount. Frequency limits show up in responses for dental, vision, and Medicaid. They also apply to some medical services, like annual wellness visits or therapy sessions. Some plans, especially dental, apply shared frequency limits across a group of procedures. For example, a plan can allow one X-ray series per year, regardless of the procedure code used later in the claim. When the plan has already paid a claim for one of the codes in the group, it can deny later claims for the others. To estimate patient cost for these types of benefits, you need two additional pieces of information from the benefit entry: - When the service was last performed. - How often the plan allows the service, such as once every 6 months or twice per year. Many payers don't populate this and instead return the information as free text in the payer's freeform messages. - The last date of service is in `dates.latestVisit`. - The allowed frequency is in `serviceLimits`. Each object sets an `ageMinimum`, an `ageMaximum`, or a `delivery` object containing the quantity, frequency, and period. When a payer sends the information as free text instead, it appears in the benefit entry's `messages` array. The following example shows a co-insurance entry for a dental exam. The plan allows one visit every six months, and their last visit was on April 4, 2024. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "coInsurance": [ { "percent": "0", "coverageLevel": "INDIVIDUAL", "service": { "system": "CDT", "value": "D0150" }, "dates": { "latestVisit": { "start": "2024-04-04" } }, "serviceLimits": [ { "delivery": { "quantity": { "qualifier": "VISITS", "value": "1" }, "period": { "qualifier": "MONTH", "value": 6 } } } ] } ] } } ] ``` - The last date of service is in [`benefitsInformation[].benefitsDateInformation`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsDateInformation). - The allowed frequency is in [`benefitsInformation[].benefitsServiceDelivery`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsServiceDelivery). When a payer sends the information as free text instead, it appears in [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description). The following example shows a co-insurance object for a dental exam. The plan allows one visit every six months, and their last visit was on April 4, 2024. {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [ { "code": "A", "name": "Co-Insurance", "serviceTypeCodes": ["35"], "serviceTypes": ["Dental Care"], "benefitPercent": "0", "benefitsDateInformation": { "latestVisitOrConsultation": "20240404" }, "benefitsServiceDelivery": [ { "quantityQualifierCode": "VS", "quantityQualifier": "Visits", "quantity": "1", "timePeriodQualifierCode": "34", "timePeriodQualifier": "Month", "numOfPeriods": "6" } ] } ] ``` ## Types of patient responsibility [#types-of-patient-responsibility] The following types of benefits indicate patient financial responsibility for care. Payers sometimes send a zero in the amount or percentage property when the patient has no responsibility. If a particular benefit category isn't applicable to a plan, the payer often sends nothing for that category rather than explicitly sending a zero benefit. For example, if a health plan has 20% co-insurance for STC `98` but no co-payment, the response typically contains no co-payment entry for that STC at all. ### Co-Insurance [#co-insurance] Co-insurance represents the percentage of a benefit patients are responsible for covering themselves. For example, if a patient has met their annual deductible and their co-insurance is 20%, they would pay $20 for a treatment that costs $100. The amount of co-insurance can differ depending on whether a provider is in-network with the health plan. Co-insurance appears in the [`plans[].benefits.coInsurance`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.coInsurance) array. Entries always include a value in `percent`. The following example shows 20% co-insurance for in-network emergency services. {/* schema:EligibilityCheckCoInsurance */} ```json { "coverageLevel": "EMPLOYEE_ONLY", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "86", "definition": "Emergency Services", "system": "STC" }, "messages": ["Emergency Room"], "percent": "0.2" } ``` Co-insurance appears as objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `A`. Entries always include a value in `benefitPercent`. The following example shows 20% co-insurance for in-network emergency services. {/* schema:BenefitsInformation */} ```json { "code": "A", "name": "Co-Insurance", "coverageLevelCode": "EMP", "coverageLevel": "Employee Only", "serviceTypeCodes": ["86"], "serviceTypes": ["Emergency Services"], "benefitPercent": "0.2", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "Emergency Room" } ] } ``` ### Co-Payment [#co-payment] A co-payment is a fixed dollar amount a patient must pay for a benefit. For example, a patient may have a $10 co-payment for a physician office visit. The amount of co-payment can differ depending on whether the provider is in-network with the health plan. Co-payments appear in the [`plans[].benefits.coPayment`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.coPayment) array. Entries always include a value in `amount`. The following example shows a $25 co-payment for in-network chiropractic care. {/* schema:EligibilityCheckCoPayment */} ```json { "coverageLevel": "EMPLOYEE_ONLY", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "33", "definition": "Chiropractic", "system": "STC" }, "messages": ["Chiropractic"], "amount": "25" } ``` Co-payments appear as objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `B`. Entries always include a value in `benefitAmount`. The following example shows a $25 co-payment for in-network chiropractic care. {/* schema:BenefitsInformation */} ```json { "code": "B", "name": "Co-Payment", "coverageLevelCode": "EMP", "coverageLevel": "Employee Only", "serviceTypeCodes": ["33"], "serviceTypes": ["Chiropractic"], "benefitAmount": "25", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "Chiropractic" } ] } ``` ### Cost Containment [#cost-containment] Cost containment refers to rules a health plan has in place to control the cost of care. Payers typically include it in the eligibility response when the patient has Medicaid coverage. The amount represents the total the patient must pay out of their own pocket before their benefits begin. Cost containment appears in the [`plans[].benefits.costContainment`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.costContainment) array. Entries always include a value in `amount`. Cost containment appears as objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `J`. Entries always include a value in `benefitAmount`. ### Deductible [#deductible] A deductible represents the total amount the patient will have to pay out of their own pocket before their benefits begin. For example, if a patient's deductible is $1,000, they will have to pay $1,000 for covered services before the health plan will start to pay. Then, the patient will typically pay part of the cost of services (such as co-payments) until they reach their out-of-pocket maximum. Though behavior can vary by payer, the deductible entry is often included twice in the response for a given coverage level, service type, and network status. One reports a time period like calendar year, meaning the value is the patient's total annual deductible. The other reports a remaining time period, meaning the value is the patient's _remaining_ deductible (annual deductible minus what they've already spent for the calendar year). Deductibles appear in the [`plans[].benefits.deductible`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.deductible) array. Entries always include a value in `amount`, and the time period is in `timePeriod`. The following example shows a $700 in-network deductible for the calendar year. {/* schema:EligibilityCheckDeductible */} ```json { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "messages": ["Benefit does apply to member's out-of-pocket maximum"], "timePeriod": "CALENDAR_YEAR", "amount": "700" } ``` Deductibles appear as objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `C`. Entries always include a value in `benefitAmount`, and the time period is in `timeQualifier`. The following example shows a $700 in-network deductible for the calendar year. {/* schema:BenefitsInformation */} ```json { "code": "C", "name": "Deductible", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "700", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "Benefit does apply to member's out-of-pocket maximum" } ] } ``` #### No deductible for specific benefits [#no-deductible-for-specific-benefits] Some health plans list an annual deductible amount while offering a subset of benefits with a zero deductible. The most common case is preventive care benefits, which the Affordable Care Act usually requires health plans to cover with no deductible or co-payment. For example, a High Deductible Health Plan (HDHP) may have a $3,000 annual deductible, but cover an annual wellness visit at no cost. For benefits with a zero deductible, the patient isn't required to pay any amount out of pocket before coverage begins, regardless of whether they've met their annual deductible amount. Note that a zero deductible doesn't necessarily mean that the patient pays nothing - their health plan may still require a co-payment or co-insurance for the benefit type. Payers may indicate that a specific benefit has a zero deductible by including a deductible entry with the amount set to `0`. Alternatively, they may send a message indicating that the patient has no deductible: in the entry's `messages` array for the `plans` shape, or in `benefitsInformation[].additionalInformation[].description` for the `benefitsInformation` shape. #### No annual deductible [#no-annual-deductible] If the payer doesn't include a deductible entry at all, you can generally assume that the patient has no annual deductible. This behavior is common with group HMO plans, which sometimes rely only on co-insurance or co-payment for cost control, but it can also occur with other types of health plans. Medical payers are required to return deductible information for service type code `30` (Health Benefit Plan Coverage), so if the first eligibility response for another service type code doesn't include deductible information and you suspect that a deductible may still apply, then we recommend running another eligibility check for service type code `30`. #### Example [#example] In the following example, one entry shows that the patient has $500 remaining to meet their annual deductible, and the other shows that their annual deductible is $1,000. In the following example: - The first entry shows that the patient has $500 remaining to meet their annual deductible (`timePeriod` = `REMAINING`). - The second entry shows that the patient's annual deductible is $1,000 (`timePeriod` = `CALENDAR_YEAR`). {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "deductible": [ { "amount": "500", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "REMAINING" }, { "amount": "1000", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "CALENDAR_YEAR" } ] } } ] ``` In the following example: - The first object shows that the patient has $500 remaining to meet their annual deductible (`timeQualifier` = `Remaining`). - The second object shows that the patient's annual deductible is $1,000 (`timeQualifier` = `Calendar Year`). {/* schema:BenefitsInformation:unwrapArray */} ```json "benefitsInformation": [{ "code": "C", "name": "Deductible", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "planCoverage": "GOLDLITE", "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "500", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "benefitsDateInformation": { "benefit": "20240101-20241231" } }, { "code": "C", "name": "Deductible", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "planCoverage": "GOLDLITE", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "1000", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "benefitsDateInformation": { "benefit": "20240101-20241231" } }] ``` ### Limitations [#limitations] Dental and vision plans often use this benefit type to specify an annual maximum benefit amount. The Affordable Care Act prevents most commercial health plans from imposing limits on annual or lifetime benefit amounts. This generally doesn't apply to government health plans, and some commercial health plans are exempt, so we recommend checking for limitations across all plan types: medical, dental, and vision. Limitations appear in the [`plans[].benefits.limitations`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.limitations) array. The following example shows a $2,000 annual maximum benefit amount. {/* schema:EligibilityCheckLimitation */} ```json { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "timePeriod": "CALENDAR_YEAR", "amount": "2000" } ``` Limitations appear as objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `F`. The following example shows a $2,000 annual maximum benefit amount. {/* schema:BenefitsInformation */} ```json { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "2000", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" } ``` When present, limitations can include an amount that indicates the maximum benefit allocated to the patient. The payer often (but not always) includes a message like "ANNUAL MAXIMUM". The following example shows a sample response from a dental payer. The patient has an annual maximum benefit for dental care of $2,500. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "limitations": [ { "amount": "2500", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "35", "definition": "Dental Care" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "CALENDAR_YEAR", "messages": ["ANNUAL MAXIMUM"] } ] } } ] ``` {/* schema:BenefitsInformation */} ```json { "timeQualifier": "Calendar Year", "inPlanNetworkIndicator": "Yes", "timeQualifierCode": "23", "benefitAmount": "2500", "code": "F", "coverageLevel": "Individual", "inPlanNetworkIndicatorCode": "Y", "serviceTypeCodes": ["35"], "additionalInformation": [ { "description": "ANNUAL MAXIMUM" } ], "serviceTypes": ["Dental Care"], "name": "Limitations", "coverageLevelCode": "IND" } ``` ### Out of Pocket (Stop Loss) [#out-of-pocket-stop-loss] This benefits type doesn't apply to most dental plans. Out of pocket, also called stop loss, represents the maximum amount a patient can pay per year. Once the patient reaches this limit, the health plan pays 100% of the allowed amount for covered services unless some other coverage limitation applies, such as a [limitation](#limitations). For example, if a health plan has a limit of 12 covered mental health visits per year, the patient may still be responsible for covering 100% of visits beyond that limit even if they have met their out-of-pocket maximum. Most health plans are required to set an out-of-pocket maximum, but health plans with provider networks can have unlimited patient responsibility for out-of-network care. When the response contains no out-of-pocket entry at all, the payer indicates that the out-of-pocket maximum is unlimited. Out-of-pocket maximums appear in the [`plans[].benefits.outOfPocket`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.outOfPocket) array. Entries always include a value in `amount`. The following example shows a $3,000 in-network out-of-pocket maximum for the calendar year. {/* schema:EligibilityCheckOutOfPocket */} ```json { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "timePeriod": "CALENDAR_YEAR", "amount": "3000" } ``` Out-of-pocket maximums appear as objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `G`. Entries always include a value in `benefitAmount`. The following example shows a $3,000 in-network out-of-pocket maximum for the calendar year. {/* schema:BenefitsInformation */} ```json { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "3000", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" } ``` ### Spend Down [#spend-down] Spend down is a process that allows individuals with high medical expenses to qualify for Medicaid even if their income is above the Medicaid income limit. The spend down amount represents the total the patient must pay out of their own pocket before they can receive Medicaid benefits. Spend down appears in the [`plans[].benefits.spendDown`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.spendDown) array. Entries always include a value in `amount`. Spend down appears as objects with [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `Y`. Entries always include a value in `benefitAmount`. ## When do payers return patient responsibility? [#when-do-payers-return-patient-responsibility] Not all service type codes (STCs) require payers to return patient responsibility information. For example, health plans are required to support inquiries for the following STCs, but aren't required to return patient responsibility information for them. - `1` - Medical Care - `30` - Health Plan Benefit Coverage - `35` - Dental Care - `88` - Pharmacy - `AL` - Vision (Optometry) - `MH` - Mental Health However, health plans regulated under HIPAA **must** return any applicable patient co-insurance, co-payment, or deductible amounts for the following service type codes. - `33` - Chiropractic - `47` - Hospital - `48` - Hospital Inpatient - `50` - Hospital Outpatient - `86` - Emergency Services - `98` - Professional (Physician) Visit – Office - `UC` - Urgent Care These lists don't necessarily extend to dental or vision plans. Some payers may support returning patient responsibility information for additional STCs. ## How much is left (accumulators)? [#how-much-is-left-accumulators] Benefit types, such as deductibles, usually include accumulator data, which indicates the amount of the benefit remaining for the calendar year. In fact, the [federally mandated](https://www.caqh.org/core/operating-rules#widget_1706047899185__operating_rules_mandate) Phase II CAQH CORE 260: Eligibility & Benefits Data Content (270/271) Rule requires HIPAA-covered health plans to return remaining deductible amounts for many commonly used service type codes (STCs), including `30` (Health Benefit Plan Coverage). When present, accumulator information arrives as a separate benefit entry that reports the remaining amount rather than the full benefit. The entry's `timePeriod` property is set to `REMAINING`. The following example shows a deductible entry for health benefit plan coverage (STC `30`). The `timePeriod` of `REMAINING` indicates that this is the remaining amount, and the `amount` of `0` indicates that the patient has already met their deductible for the year. The `network.indicator` of `IN_AND_OUT_OF_NETWORK` indicates that this benefit isn't specific to in-network or out-of-network providers. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "deductible": [ { "amount": "0", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "timePeriod": "REMAINING" } ] } } ] ``` When present, accumulator information is provided in a separate `benefitsInformation` object, with the `timeQualifierCode` set to `29` for `Remaining`. The following example shows a deductible benefit (`code`: `C`) for health benefit plan coverage (STC `30`). The `timeQualifierCode` of `29` indicates that this is the remaining amount, and the `benefitAmount` of `0` indicates that the patient has already met their deductible for the year. The `inPlanNetworkIndicatorCode` of `W` indicates that this benefit isn't specific to in-network or out-of-network providers. {/* schema:BenefitsInformation */} ```json { "code": "C", "name": "Deductible", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "coverageLevelCode": "IND", "coverageLevel": "Individual", "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" } ``` ## No Surprises Act [#no-surprises-act] The No Surprises Act is a federal law that protects patients from surprise medical bills — especially in emergency situations or when they unknowingly receive care from out-of-network providers. Under NSA, patients also have the right to a good faith estimate for non-emergency care if they're uninsured or self-pay. The No Surprises Act bans surprise billing (also known as balance billing) in these situations: - **Emergency Services:** Even if patients go to an out-of-network hospital or ER, they only have to pay in-network cost-sharing. This includes services at freestanding ERs and urgent care centers licensed to provide emergency care. - **Non-Emergency Services at In-Network Facilities:** If patients go to an in-network hospital or surgery center, but an out-of-network provider (like an anesthesiologist or radiologist) treats them, they can't be charged more than their in-network rate. - **Air Ambulance Services:** Patients are only responsible for their in-network rate. ### Does the NSA apply? [#does-the-nsa-apply] Payers don't typically note when the NSA applies to a patient's plan in the eligibility response. However, the NSA applies to most health plans, including fully insured and self-funded employer plans. It **doesn't** apply to: - Ground ambulance services - Medicare, Medicaid, TRICARE, or VA patients because these programs already have their own strong balance billing protections - Some people with health care sharing ministries or short-term limited-duration plans - Some unlicensed or unregulated providers ## Balance Billing Protection Act [#balance-billing-protection-act] The Balance Billing Protection Act (BBPA) is a Washington state law that protects patients from unexpected medical bills (also known as balance billing) when they receive care from out-of-network providers. It's similar to the No Surprises Act, but it applies specifically to Washington residents with state-regulated plans. It doesn't apply to self-funded employer plans unless they opt in. The BBPA protects patients from balance billing in the following situations: - Emergency services, even if patients are treated by an out-of-network provider or at an out-of-network facility. - Non-emergency services at an in-network hospital or ambulatory surgical center when patients are unknowingly treated by an out-of-network provider (like an anesthesiologist or radiologist). In these cases, the patient only pays their normal in-network cost-share (deductible, co-payment, co-insurance), and the provider must work out the rest with their insurer. ### Does the BBPA apply? [#does-the-bbpa-apply] When the BBPA applies to a patient's health plan, payers are required to note this on coverage status entries. In the `plans` shape, these are entries in `plans[].benefits.statuses`. In the `benefitsInformation` shape, they're objects with a `benefitsInformation[].code` of: - `1` (Active Coverage) - `2` (Active - Full Risk Capitation) - `3` (Active - Services Capitated) - `4` (Active - Services Capitated to Primary Care Physician) - `5` (Active - Pending Investigation) - `6` (Inactive) - `7` (Inactive - Pending Eligibility Update) - `8` (Inactive - Pending Investigation) In these cases, you see one of the following messages. The `plans` shape returns it in the entry's `messages` array, and the `benefitsInformation` shape in `benefitsInformation[].additionalInformation[].description`. > Services provided to this patient are subject to the Balance Billing Protection Act. Please see RCW 48.49.020 for details. > Services provided to this patient are subject to the No Surprises Act. Please see RCW 48.49.020 for details. The following example shows a coverage status entry with the BBPA message included. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "planCoverageDescription": "Open Access Plus", "messages": [ "Complete Care Management", "Services provided to this patient are subject to the Balance Billing Protection Act. Please see RCW 48.49.020 for details." ] } ] } } ] ``` {/* schema:BenefitsInformation */} ```json { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "planCoverage": "Open Access Plus", "additionalInformation": [ { "description": "Complete Care Management" }, { "description": "Services provided to this patient are subject to the Balance Billing Protection Act. Please see RCW 48.49.020 for details." } ] } ``` # Eligibility PDF Source: https://www.stedi.com/docs/healthcare/eligibility-pdf Stedi generates a PDF for eligibility checks with valid 271 responses. The PDF includes a summary of the request details and a human-readable version of the 271 response. If the response contains [`AAA` errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors), the PDF displays them with their possible resolutions. When an eligibility check returns benefits information, you can use the PDF to determine: - whether the patient has active coverage with the health plan. - whether a patient's health plan covers the requested services. - patient responsibility amounts, such as co-pays and deductibles. - whether prior authorization is required for specific services. Download a [sample PDF](/files/sample-eligibility-check-pdf.pdf) with test data. ## Retrieve the PDF [#retrieve-the-pdf] You can retrieve the eligibility PDF by: - Calling the [Retrieve Eligibility PDF](/healthcare/api-reference/get-eligibility-pdf) endpoint with the eligibility check's ID. Stedi generates the PDF within milliseconds after an eligibility check completes, so you can request it as soon as you receive the check response. In rare cases, it takes slightly over a second. The endpoint returns an HTTP `404` error until the PDF is available. - Downloading the PDF from the eligibility check's details page within the [Stedi portal](https://portal.stedi.com/app/healthcare/eligibility). Go to the eligibility check's details page and click the **Download PDF** icon at the top. ## PDF structure [#pdf-structure] The PDF has the following primary sections. ### Summary [#summary] For successful eligibility checks, the summary section at the top clearly indicates whether Stedi found _any_ service type codes (STCs) or procedure codes with active coverage in the response. You can then check the [benefits tables](#benefits) to determine which specific services are covered. The PDF header shows the patient's name, the same as the check's overview title in the Stedi portal. When the check includes a dependent, the header also shows **Dependent of** and the subscriber's name. The summary section also shows details about the subscriber, payer, and provider. This includes plan details such as when coverage starts, the plan dates, and the group name and number. ![PDF summary coverage found](/images/providers/eligibility-pdf-summary.png) If the eligibility check response contains errors, the summary section indicates that the check was **Failed** and lists the errors with possible resolutions. ![PDF summary errors](/images/providers/eligibility-pdf-errors.png) ### Benefits [#benefits] The **Benefits** section contains tables listing all the benefits information returned in the response. Each row in the table corresponds to a specific benefit for a specific service type code (STC) or procedure code. The benefits are grouped in two ways: - The first grouping mechanism is the patient's health plan. Many eligibility responses only contain benefits for a single health plan, but some responses include benefits for multiple plans. For example, if the patient has both a primary health plan and a dental plan, the PDF will contain separate sections for each plan. - Within each health plan section, benefits are further grouped by STC and procedure code. The following example shows the patient's benefits for STC `30` (Health Benefit Plan Coverage). Note that their plan name **E20** is at the top of the section. The PDF notes that this is **Plan 1 of 1**, meaning that the payer returned information about a single health plan for this patient. ![PDF benefits table](/images/providers/eligibility-pdf-benefits-table.png) For each STC or procedure code, the columns in the table include: | Column | Description | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Type** | The type of benefit, such as co-payment, deductible, or prior authorization requirement. | | **Coverage level** | The level of coverage for the benefit, such as Individual or Family. | | **Network indicator** | Whether the benefit applies to in-network or out-of-network providers. Note that this column only indicates whether the benefit applies to in-network or out-of-network providers in general. It doesn't indicate whether the requesting provider is in-network or out-of-network for the patient. | | **Coverage** | The amount or details of the benefit. For rows with the **Statuses** type, this column lists whether the patient has active coverage for that STC or procedure code. For patient responsibility rows, this column lists the amount the patient is responsible for. For example, a co-payment row may list a $20 co-payment amount. | | **Benefit** | Additional details about the benefit. This column includes the plan type, places of service, whether prior authorization is required, and any messages from the payer about the benefit. For example, a co-payment row may include a message that says "waived if admitted to hospital." | There may be multiple benefits for the same STC and benefit type. For example, a patient may have different co-insurance amounts for in-network and out-of-network providers or for specific services within a broader STC. The **Messages** field contains notes from the payer, which typically list limitations or conditions that apply to the benefit. In the following example, the patient has a $200 co-payment for STC `86` (Emergency Services), but the messages indicate that this co-payment is waived if the patient is admitted to the hospital. ![PDF messages example](/images/providers/eligibility-pdf-messages.png) ### Request [#request] The final **Request** section provides a human-readable version of the original 270 eligibility check request. This helps you remember what STCs and procedure codes you requested and compare that to the benefits the payer returned in the response. ![PDF request section](/images/providers/eligibility-pdf-request.png) ## Interpret the PDF [#interpret-the-pdf] You can use the information in the PDF to answer important questions about the patient's coverage and financial responsibility for services. ### Does the patient have coverage? [#does-the-patient-have-coverage] The PDF indicates at the top in the **Summary** section whether there was a service type code (STC) or procedure code with active coverage returned. ![PDF active coverage](/images/providers/eligibility-pdf-active-coverage.png) Then, you can check to see if there's a **Statuses** row for the STCs or procedure codes you care about. Typically, only broad STCs (`30` and `35` for general medical and dental coverage) will have a status. ![PDF statuses](/images/providers/eligibility-pdf-statuses-field.png) Quick reference: - The patient has coverage when the status is **Active coverage** for the relevant STC or procedure code. You can also assume the patient has coverage when there is no status, but benefits are listed (such as co-pay or deductible amounts). - The patient doesn't have coverage when the status is **Inactive** for an STC or procedure code. You can also assume the patient doesn't have coverage if there are no benefits listed or the payer returned a message indicating that the service isn't covered. ### What is the patient's financial responsibility? [#what-is-the-patients-financial-responsibility] Once you've confirmed that the patient has coverage, you may want to understand their financial responsibility for services. For example, you may want to know their co-pay amount for an in-office visit or whether they've met their deductible. Within each STC or procedure code section, the PDF includes rows for each type of patient responsibility. The following example shows that for STC `83` (Infertility), the patient has a yearly out-of-pocket maximum of $7,500 for individual coverage and a $15,000 out-of-pocket maximum for family coverage. They also have a co-payment of $50 for in-office visits for both in- and out-of-network providers. ![PDF patient responsibility](/images/providers/eligibility-pdf-patient-responsibility.png) ### Is the provider in- or out-of-network? [#is-the-provider-in--or-out-of-network] Unfortunately, you can't reliably answer this question from a standard eligibility response. That means you also can't reliably answer this question from the generated PDF. Payers typically don't explicitly indicate whether the requesting provider is in- or out-of-network for the patient (though there are some exceptions). The Network indicator field in the table only indicates whether the benefit applies to in-network or out-of-network providers in general. It doesn't tell you whether the requesting provider is in- or out-of-network for the patient. Some payers do provide additional information about whether the requesting provider is in- or out-of-network. They may do this through either freeform messages or selective inclusion of benefits in the response. For example, some payers only return out-of-network benefits if the requesting provider is out-of-network. Likewise, if the provider is in-network, they only provide in-network benefits. Stedi doesn't have a complete list of payers that selectively include or exclude benefits based on the provider's network status. **The most reliable way to determine network status is to check directly with the payer or the provider.** Note that payers may have different networks for different health plans, such as employer-sponsored plans versus Medicare Advantage, and these networks may have different contact paths. ### Is prior authorization required? [#is-prior-authorization-required] Prior authorization (also called pre-authorization or pre-certification) is a requirement that the patient or their provider must get approval before a payer will cover specific services, procedures, medications, or devices. Without it, the payer may deny claims. If the payer provides prior authorization information in the eligibility response, it will be listed in the **Benefit** column for that service or procedure. The payer may also send messages about prior authorization rules. If the payer doesn't provide prior authorization information for a service or procedure, you can typically assume that prior authorization isn't required. Payers sometimes send incomplete or inaccurate prior authorization information, and Stedi can't control what they send. An eligibility response isn't a guarantee of payment, so verify requirements with the payer when the response doesn't establish them. In the following example, the patient requires prior authorization for both STC `A7` (Psychiatric - Inpatient) and STC `A8` (Psychiatric - Outpatient) services. This rule applies to both in-network and out-of-network providers. ![PDF prior authorization](/images/providers/eligibility-pdf-prior-auth.png) # Plan details Source: https://www.stedi.com/docs/healthcare/eligibility-plan-details Find a patient's plan name, plan number, and group number in an eligibility check response, and learn how to identify Medicare Advantage plans. The following details about the patient's health plan are sometimes included in the eligibility response. Not all payers return this information, and behavior can vary by payer. ## Response shapes [#response-shapes] Stedi returns one of two [response shapes](/healthcare/eligibility-response-shapes), depending on the endpoint you called. Both contain the same benefits information, organized differently. You can identify them by the top-level array that organizes the patient's benefits information - either `plans` or `benefitsInformation`. | Top-level array | Endpoints | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `plans` | [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) | | `benefitsInformation` | [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) | Every section on this page covers both response shapes, labeled `plans` and `benefitsInformation`. Select the label that matches the endpoint you called, and the page applies your selection to every section. ## Plan name [#plan-name] Payers are only required to provide a plan name when returning Service Type Code (STC) `30`, though the name itself isn't tied to any particular STC. The name they send may not match the name the payer uses in official plan documents or marketing material. A patient can also have more than one plan, such as separate medical, dental, and vision plans. Each plan has its own name, and the response reports each one separately. A payer sends a plan name with each benefit entry, and Stedi derives [`plans[].name`](/healthcare/api-reference/post-eligibility-check#response.plans.name) from those names. The value is present when the names agree, and absent when the payer's data is missing, ambiguous, or contradictory. When `plans[].name` is absent, check each benefit's `planCoverageDescription`, which contains the plan name the payer sent for that benefit. In the following example, the plan name is `Open Access Plus`: {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "name": "Open Access Plus", "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "messages": ["Complete Care Management"] } ] } } ] ``` You may also be able to identify a name through [`subscriber.additionalInformation`](/healthcare/api-reference/post-eligibility-check#response.subscriber.additionalInformation), where `plan.name`, `group.name`, and `planNetwork.name` contain the plan, group, and network names when the payer sends them. These are less reliable than `plans[].name`. The only standard property that contains a health plan product or program name is [`benefitsInformation[].planCoverage`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.planCoverage). Each plan has its own set of objects, so a response for a patient with multiple plans contains multiple `planCoverage` values. You can see `PPO DENTAL` in one object and `PREFERRED PROVIDER OPTION MEDICAL` in another. In the following example, the plan name is `Open Access Plus`: {/* schema:BenefitsInformation */} ```json { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "planCoverage": "Open Access Plus", "additionalInformation": [ { "description": "Complete Care Management" } ] } ``` You may also be able to identify the plan name through the following properties, but they're less reliable than `planCoverage`. - Some properties contain a name for the group (often named for the employer if they sponsor the plan), insurance policy, or network: `groupDescription`, `planDescription`, and `planNetworkIdDescription`. These can appear in the `subscriber`, `dependents`, or [`benefitsInformation[].benefitsAdditionalInformation`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsAdditionalInformation) objects, depending on where the payer places the information. - Some payers send something like a plan name in [`planInformation.planDescription`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planInformation.planDescription) or as unstructured text in [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description). ### BCBS home plan [#bcbs-home-plan] Many Blue Cross Blue Shield (BCBS) payers are part of the BlueCard Program, which makes it easier to run eligibility checks for patients receiving care outside their home state. With BlueCard, you can send eligibility checks to any participating BCBS payer, and BlueCard routes them to the patient's home plan for benefits verification. For example, if you send a request to BCBS Florida for a patient covered by BCBS Alabama, the response includes benefits information from the patient's home plan BCBS Alabama. Stedi enriches the eligibility response with information about the patient's home plan when the eligibility check includes the member's first name, last name, birthdate, and full member ID (including the 3-character BCBS alpha prefix). Stedi returns the home plan in a benefit's `relatedEntities` array. The object's `type` property is set to `PARTY_PERFORMING_VERIFICATION`. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "relatedEntities": [ { "type": "PARTY_PERFORMING_VERIFICATION", "name": { "organization": "Blue Cross Blue Shield of Alabama" }, "payerId": "00510BC" } ] } ] } } ] ``` In JSON responses, Stedi returns information about the patient's home plan in a [`benefitsInformation[].benefitsRelatedEntities`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsRelatedEntities) array. The relevant object's `entityIdentifier` property is set to `Party Performing Verification`. {/* schema:BenefitsInformation */} ```json { "code": "1", "serviceTypeCodes": ["30"], "benefitsRelatedEntities": [ { "entityIdentifier": "Party Performing Verification", "entityType": "Non-Person Entity", "entityName": "Blue Cross Blue Shield of Alabama", "entityIdentification": "PI", "entityIdentificationValue": "00510BC" } ] } ``` In X12 EDI responses, Stedi returns this information in `Loop 2120C` (Subscriber Benefit Related Entity) or `Loop 2120D` (Dependent Benefit Related Entity), depending on whether the patient is the subscriber or a dependent. The `NM1-01` composite is set to `VER` (Party Performing Verification). ``` LS*2120~ NM1*VER*2*Blue Cross Blue Shield of Alabama*****PI*00510BC~ LE*2120~ ``` BCBS enrichment isn't supported when: - The patient's member ID doesn't contain the 3-character alpha prefix. - The patient has stand-alone vision and pharmacy cards issued through an intermediary model. - The patient's plan is a stand-alone dental product. - The patient is part of a Federal Employee Program (FEP). In this case, the patient has `R` before their member ID. ## Plan number [#plan-number] A plan number is the payer's unique ID for a plan. Not all payers return the patient's plan number. Check [`subscriber.additionalInformation.plan`](/healthcare/api-reference/post-eligibility-check#response.subscriber.additionalInformation.plan), or [`dependent.additionalInformation.plan`](/healthcare/api-reference/post-eligibility-check#response.dependent.additionalInformation.plan) when the patient is a dependent. The object's `number` property contains the plan number, and `name` contains the plan description, if available. Individual benefit entries can also carry their own plan details in their `additionalInformation.plan` object. Stedi keeps these separate from the subscriber and dependent objects, because entries within a plan can report different plan numbers and descriptions. The plan number can appear in multiple places, including outside the `benefitsInformation` object. Check the following properties in order: - [`subscriber.planNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.subscriber.planNumber) - [`benefitsInformation[].benefitsAdditionalInformation.planNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsAdditionalInformation.planNumber) - [`planInformation.planNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planInformation.planNumber) ## Group number [#group-number] A group number is the payer's code for the employer or other party that purchased the plan. Employees on a group plan typically share the same group number, though there are exceptions. Some employers use different group numbers for different employee categories, like union members and management. Not all payers return the patient's group number. Check [`subscriber.additionalInformation.group`](/healthcare/api-reference/post-eligibility-check#response.subscriber.additionalInformation.group), or [`dependent.additionalInformation.group`](/healthcare/api-reference/post-eligibility-check#response.dependent.additionalInformation.group) when the patient is a dependent. The object's `number` property contains the group number, and `name` contains the group description, if available. Individual benefit entries can also carry their own group details in their `additionalInformation.group` object. Stedi keeps these separate from the subscriber and dependent objects, because entries within a plan can report different group numbers and descriptions. The group number can appear in multiple places, including outside the `benefitsInformation` object. Check the following properties in order: - [`subscriber.groupNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.subscriber.groupNumber) - [`benefitsInformation[].benefitsAdditionalInformation.groupNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsAdditionalInformation.groupNumber) - [`planInformation.groupNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planInformation.groupNumber) ## Medicare Advantage plans [#medicare-advantage-plans] A Medicare Advantage plan (also known as Medicare Part C) is a type of health plan offered by private insurance companies approved by Medicare. It provides all the benefits of standard Medicare (Parts A and B) and often includes additional services such as prescription drug coverage, vision, dental, and hearing care. Medicare Advantage plans also include an annual out-of-pocket spending limit, offering financial protection beyond what standard Medicare provides. Here's how to identify Medicare Advantage plans in eligibility responses from commercial payers and the Centers for Medicare and Medicaid Services (CMS). ### Commercial payers [#commercial-payers] A response from a commercial payer likely contains a Medicare Advantage plan when it reports a Medicare Part A or Part B insurance type, or when it includes a Medicare Beneficiary Identifier (MBI). The MBI is the stronger signal: when the payer sends one, the plan is almost certainly Medicare Advantage. Look for either of the following: - A benefit entry with an `insuranceType` of `MEDICARE_PART_A` or `MEDICARE_PART_B`. - An `mbi` property in [`subscriber.additionalInformation`](/healthcare/api-reference/post-eligibility-check#response.subscriber.additionalInformation) or [`dependent.additionalInformation`](/healthcare/api-reference/post-eligibility-check#response.dependent.additionalInformation), which contains the MBI. The following example shows a coverage status entry with a Medicare Part A insurance type. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "INDIVIDUAL", "insuranceType": "MEDICARE_PART_A", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" } } ] } } ] ``` The following example shows the patient's MBI. {/* schema:EligibilityCheckSubscriber:unwrap */} ```json "subscriber": { "additionalInformation": { "mbi": "1A22BB3CC44" } } ``` Look for either of the following: - [`benefitsInformation[].insuranceTypeCode`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.insuranceTypeCode) = `MA` or `MB`, which correspond to [`benefitsInformation[].insuranceType`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.insuranceType) = `Medicare Part A` and `Medicare Part B`, respectively. - [`planInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planInformation.hicNumber) or [`benefitsInformation[].benefitsAdditionalInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsAdditionalInformation.hicNumber), either of which contains the MBI. The following example shows a `code` = `1` (Active Coverage) object with a Medicare Part A insurance type. {/* schema:BenefitsInformation */} ```json { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "MA", "insuranceType": "Medicare Part A" } ``` The following example shows the patient's MBI in `planInformation.hicNumber`. {/* schema:PlanInformation:unwrap */} ```json "planInformation": { "hicNumber": "1A22BB3CC44" } ``` Behavior varies by payer, so payers don't always include these properties, even when the patient has a Medicare Advantage plan. ### CMS [#cms] A response from CMS likely contains a Medicare Advantage plan when it includes what CMS calls the MA Bill Option Code. CMS sends this code in a freeform message on a benefit entry for service type code `30`. The MA Bill Option Code is one of two sets of values, depending on whether the Medicare beneficiary is locked in. When a Medicare beneficiary is locked in, they can only make changes to their coverage during specific times of the year, unless they qualify for a Special Enrollment Period (SEP). In the following code sets, the Fiscal Intermediary is what CMS refers to as a Medicare Administrative Contractor (MAC). {/* CMS MA Bill Option Code descriptions are verbatim; keep their modal "should". */} {/* vale Stedi.Should = NO */} **Medicare Beneficiary locked in to Medicare Advantage (MA)** - `A`: Fiscal Intermediary should process all claims - `B`: MA should process only in-plan Part A claims and in-area Part B claims - `C`: MA should process all claims **Medicare Beneficiary NOT locked in to Medicare Advantage (MA)** - `1`: Fiscal Intermediary should process all claims - `2`: MA should process only in-plan Part A claims and in-area Part B claims {/* vale Stedi.Should = YES */} When CMS identifies a Medicare Advantage plan, the same benefit entry contains the plan's name, address, and contact details. Use them to reach the plan directly about claims or prior authorization. To find the MA Bill Option Code, look for: - A [`plans[].benefits.contactFollowingEntityForInformation`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits.contactFollowingEntityForInformation) entry whose `service` object contains service type code `30`. - A `messages` value on that entry, which contains the MA Bill Option Code. The `relatedEntities` array contains the Medicare Advantage plan as a `PRIMARY_PAYER` entity. {/* schema:EligibilityCheckContactFollowingEntityForInformation */} ```json { "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "messages": ["MA Bill Option Code - A"], "relatedEntities": [ { "type": "PRIMARY_PAYER", "name": { "organization": "UHC OF CALIFORNIA" }, "address": { "addressLine1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contacts": [ { "phoneNumbers": ["8006446644"], "urls": ["UHC.com/Medicare"] } ] } ] } ``` To find the MA Bill Option Code, look for: - [`benefitsInformation[].code`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.code) = `U` (which corresponds to [`benefitsInformation[].name`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.name) = `Contact Following Entity for Eligibility or Benefit Information`) combined with `serviceTypeCodes` = `30`. - [`benefitsInformation[].additionalInformation[].description`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.additionalInformation.description), which contains the MA Bill Option Code. The [`benefitsRelatedEntities`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsRelatedEntities) array contains the Medicare Advantage plan, with `entityIdentifier` set to `Primary Payer`. {/* schema:BenefitsInformation */} ```json { "code": "U", "name": "Contact Following Entity for Eligibility or Benefit Information", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "additionalInformation": [{ "description": "MA Bill Option Code - A" }], "benefitsRelatedEntities": [ { "entityIdentifier": "Primary Payer", "entityType": "Non-Person Entity", "entityName": "UHC OF CALIFORNIA", "address": { "address1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "8006446644" }, { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "UHC.com/Medicare" } ] } } ] } ``` # Review benefits in the Stedi portal Source: https://www.stedi.com/docs/healthcare/eligibility-portal-benefits-view Review eligibility check results in the Stedi portal's benefits table, including coverage, patient responsibility, and prior authorization. You can review eligibility check results in the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). For successful eligibility checks, you can use our filterable benefits table to determine benefits details such as: - whether a patient's health plan covers the requested services. - patient responsibility amounts, such as co-pays and deductibles. - whether prior authorization is required for specific services. ## Eligibility check results [#eligibility-check-results] To review an eligibility check's results: 1. Go to the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). 2. Click the eligibility check with the patient information you want to view. Stedi opens the eligibility check's **Overview** tab. ### Overview [#overview] At the top of the **Overview** tab is a status banner that shows the check's [result](#eligibility-check-result). When the payer returns errors, they appear directly under the banner. The summary under the banner can contain: - **Subscriber:** The subscriber's name, date of birth, gender, address, and member ID. - **Dependent:** The dependent's details and their relationship to the subscriber. This group only appears when the check is for a dependent. - **Provider:** The requesting provider's name or organization name, and their NPI. - **Payer:** The payer's name, ID, and contact details. - **Encounter:** The services you requested and the date of service, when available. To copy the check's identifiers, click **ID** at the top of the page. The menu contains two IDs: - **Eligibility check ID:** The identifier Stedi assigns to the check, formatted as `ec_`. Use it to link directly to this check's results. - **Outbound trace ID:** The identifier Stedi sends to the payer with the check. Reference this value if contacting the payer directly about the check. You can find the check with either identifier using **Search** in the navigation bar. You can also reference either value if contacting Stedi support about the check. ![Eligibility search details page](/images/providers/eligibility-check-overview.png) ### Benefits table [#benefits-table] The benefits table displays the patient's benefits and health plan details. The table groups information into sections: - The first grouping mechanism is the patient's health plan. Many eligibility responses only contain benefits for a single health plan, but some responses include benefits for multiple plans. For example, if the patient has both a primary health plan and a dental plan with the same payer, the benefits view contains separate sections listing all the benefits for each plan. - Within each health plan section, benefits are further grouped by service type code (STC) and procedure code so that you can easily find and review all of the benefits for a specific set of services. ![Benefits table overview](/images/providers/benefits-table-overview.png) The table also contains the following information, when the payer's response includes it: - The patient's health plan details, including the plan name, group number, plan number, and the plan's begin and end dates. - Benefits-related entities, in their own column. These commonly designate the patient's primary care provider (PCP), another organization that handles a specific carveout benefit type (such as telehealth mental health services), or another health plan for the patient (coordination of benefits scenarios). There may be multiple benefits for the same STC and benefit type. For example, a patient may have different co-insurance amounts for in-network and out-of-network providers or for specific services within a broader STC. The **Message** or **Messages** field contains notes from the payer, which typically list limitations or conditions that apply to the benefit. In the following example, the patient has a $50 co-pay for Emergency Services (STC `86`), but the messages indicate that this co-pay is waived if the patient is admitted to the hospital. ![benefits table notes](/images/providers/benefits-table-messages-example.png) #### Benefits filters [#benefits-filters] Payers often send more benefits than you need for your use case. You can filter the benefits table to review only the benefits you care about. Each filter shows how many benefits match each of its options. The options themselves depend on the data in the payer's response. For example, if the payer didn't return any family-level benefits, the **Coverage level** filter won't have a `Family` option. Stedi shows three filters on the bar and groups the rest behind a button that counts them, such as **12 more**. Which three appear depends on the payer's response, so the set changes from check to check. {/* prettier-ignore-start */} | Filter | Description | | -------------- | ----------------------------------------------------------------------------------------------- | | Type | This is the benefit type code, such as `Co-insurance` or `Deductible`. | | Coverage level | The coverage level. This is typically either `Individual` or `Family`, but the values can vary depending on the patient's plan. | | Network | Whether the benefit applies to in-network providers, out-of-network providers, or both.
  • The payer may not send this indicator for every benefit. In these cases, the **Network indicator** field in the benefits table will be `Not set`.
  • This field doesn't tell you whether the provider is in or out-of-network for the patient. To determine that, you must check directly with the payer.
| | Service or Procedure | The service type code (STC) or procedure code associated with the benefit. For example, `UC` for Urgent Care or `MH` for Mental Health. | | Place of service | The names of place of service codes associated with the benefit. For example, `Emergency Room - Hospital` for service type code `23`. | | Message | Messages from the payer associated with the benefit. For example, `Co-pay waived if admitted`. | | Plan name | The name of the patient's health plan. | | Authorization | Whether the benefit requires prior authorization. | | Limit applies | Whether the payer applies a limit to the benefit, such as a visit or dollar cap. | | Time period | The period the benefit applies to, such as `Calendar Year` or `Remaining`. | | Has dates | Benefits that contain dates, such as plan or eligibility dates. | | Has related entities | Benefits that name a related entity, such as a PCP or a carveout organization. | | Has plan information | Benefits that contain plan details, such as the plan name or number. | | Has group information | Benefits that contain group details, such as the group number. | | Has additional information | Benefits that contain other payer-supplied details. | {/* prettier-ignore-end */} For example, to determine the patient's co-pay for urgent care visits with in-network providers, you can set the **Type** filter to `Co-payment`, the **Network** filter to `In-Network`, and the **Service or Procedure** filter to `UC` or another relevant code. ### Eligibility check result [#eligibility-check-result] An eligibility check can have one of the following results: {/* prettier-ignore-start */} | Status | Description | | --------- | ----------- | | **Active** | The payer's response contains an active eligibility and benefit type. | | **Inactive** | The payer's response doesn't contain an active eligibility and benefit type. | | **Investigate** | The payer returned an unexpected eligibility or benefit type code. Review the response and contact the payer if you have questions. | | **Failed** | The payer returned an error code in the response. Review the error code and retry the eligibility check. | {/* prettier-ignore-end */} Note that an **Active** result only indicates that there was at least one service type with active coverage in the benefits response. You must check the response details to determine whether the patient has active coverage for the services you care about. ## Does the patient have coverage? [#does-the-patient-have-coverage] The patient has coverage when the date of service is within the plan's eligibility period, and the patient has active coverage for the relevant services. Scroll to the benefits table, filter by **Service or Procedure**, and choose the STC(s) or procedure code(s) you care about. Then check for the following information: - **Coverage statuses:** Check for rows with the **Type** column set to **Statuses**. The **Coverage** column lists the status for the STC or procedure code. Typically, only broad STCs (`30` and `35` for general medical and dental coverage) have a **Statuses** row. - **Dates:** Check the **Benefit** column for plan effective dates, plan eligibility dates, or any other dates the payer returned. The patient has coverage when a **Statuses** row shows **Active coverage** and the date of service falls within the plan's dates. You can also assume the patient has coverage when there's no **Statuses** row but the table lists benefits for that STC or procedure code, such as co-pay or deductible amounts. The patient doesn't have coverage when a **Statuses** row shows **Inactive**, or when the date of service falls outside the plan's dates. You can also assume the patient doesn't have coverage when the table lists no benefits for that STC or procedure code, or when the payer returned a message indicating that the service isn't covered. ![Benefits table statuses](/images/providers/benefits-table-statuses.png) An eligibility check has an **Active** result when the response contains at least one active benefit type. However, you must review the benefits table to confirm that the patient has active coverage for the STCs you care about. ## What is the patient's financial responsibility? [#what-is-the-patients-financial-responsibility] Once you've confirmed that the patient has coverage, you may want to understand their financial responsibility for services. For example, you may want to know their co-pay amount for an in-office visit or whether they've met their deductible. You can use the **Type** filter on the benefits table to narrow the results to specific benefits types (such as co-pay amounts) for each STC or procedure code. The following example shows that the patient has a 10% co-insurance for Hospital - Inpatient (STC `48`) services from in-network providers and a 30% co-insurance for services from out-of-network providers. ![Benefits table patient responsibility](/images/providers/benefits-table-patient-responsibility.png) ## Is the provider in- or out-of-network? [#is-the-provider-in--or-out-of-network] Unfortunately, you can't reliably answer this question from a standard eligibility response. Payers typically don't explicitly indicate whether the requesting provider is in- or out-of-network for the patient (though there are some exceptions). The **Network indicator** field in the table only indicates whether the benefit applies to in-network or out-of-network providers in general. It doesn't tell you whether the requesting provider is in- or out-of-network for the patient. Some payers do provide additional information about whether the requesting provider is in- or out-of-network. They may do this through either freeform messages or selective inclusion of benefits in the response. For example, some payers only return out-of-network benefits if the requesting provider is out-of-network. Likewise, if the provider is in-network, they only provide in-network benefits. Stedi doesn't have a complete list of payers that selectively include or exclude benefits based on the provider's network status. **The most reliable way to determine network status is to check directly with the payer or the provider.** Note that payers may have different networks for different health plans, such as employer-sponsored plans versus Medicare Advantage, and these networks may have different contact paths. ## Is prior authorization required? [#is-prior-authorization-required] Prior authorization (also called pre-authorization or pre-certification) is a requirement that the patient or their provider must get approval before a payer will cover specific services, procedures, medications, or devices. Without it, the payer may deny claims. To find the benefits that require prior authorization, filter the benefits table by **Authorization**. When the payer provides prior authorization information, the **Benefit** column shows it for that service or procedure. The payer may also send messages about prior authorization rules. The following example shows that the payer requires prior authorization for Health Benefit Plan Coverage (STC `30`). The message `PCP TO SUBMIT A SPECIALIST REFERRAL` indicates that prior authorization is required to see a specialist. ![Benefits table prior authorization](/images/providers/benefits-table-prior-auth.png) If the payer doesn't provide prior authorization information for a service or procedure, you can typically assume that prior authorization isn't required. Payers sometimes send incomplete or inaccurate prior authorization information, and Stedi can't control what they send. An eligibility response isn't a guarantee of payment, so verify requirements with the payer when the response doesn't establish them. # Eligibility response shapes Source: https://www.stedi.com/docs/healthcare/eligibility-response-shapes After you send an eligibility or insurance discovery check, the payer returns an X12 271 response containing the patient's benefits information. Stedi transforms the 271 response from the original X12 EDI into JSON, making it easier to read, understand, and ingest into your system. ## Response shapes [#response-shapes] Stedi returns one of two response shapes, depending on the endpoint you called. Both contain the same benefits information, organized differently. You can identify them by the top-level array that organizes the patient's benefits information - either `plans` or `benefitsInformation`. | Top-level array | Endpoints | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `plans` | [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) | | `benefitsInformation` | [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) | This documentation refers to the response shapes by their top-level array throughout. An example labeled `plans` applies only to the [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) endpoint. An example labeled `benefitsInformation` applies to the other four endpoints. ### `plans` array [#plans-array] {/* Endpoint proper names; keep title case. */} {/* vale Stedi.TransactionNames = NO */} **Applies to:** [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) {/* vale Stedi.TransactionNames = YES */} The `plans` array groups benefits under their associated health plan. A response can contain multiple plans. For example, a patient with medical, dental, and vision coverage through the same payer receives one `plans` object for each health plan. When the payer's plan information is missing or inconsistent, Stedi can't reliably group benefits by plan. In that case, the response contains a single plan with no [`name`](/healthcare/api-reference/post-eligibility-check#response.plans.name), and that plan contains every benefit. Each benefit's `planCoverageDescription` contains the plan name the payer sent for it, if any. Each plan contains a `benefits` object. Within it: - The `statuses` array reports whether the patient has coverage, and for which services. - Every other kind of benefit is its own named array, such as `coPayment` or `deductible`. For example, `plans[0].benefits.coPayment` contains the co-payments for the first plan. - Every benefit entry contains a `service` object that identifies the applicable service. {/* schema:CreateEligibilityCheckResponseContent */} ```json { "id": "ec_550e8400-e29b-41d4-a716-446655440000", "payerId": "87726", "payer": { "type": "PAYER", "name": { "organization": "HUMANA" } }, "x12": "...", "subscriber": { "memberId": "123456789", "dates": { "plan": { "start": "2024-01-01" }, "service": { "start": "2024-09-17" } } }, "plans": [ { "name": "Humana Gold Plan", "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "EMPLOYEE_ONLY", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "system": "STC", "value": "30", "definition": "Health Benefit Plan Coverage" }, "messages": ["Medicare PPO"] } ], "coPayment": [ { "amount": "2000", "coverageLevel": "INDIVIDUAL", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "system": "STC", "value": "49", "definition": "Hospital - Room and Board" }, "timePeriod": "ADMISSION", "messages": ["INPATIENT HOSPITAL ROOM AND BOARD"] } ] } } ] } ``` ### `benefitsInformation` array [#benefitsinformation-array] {/* Endpoint proper names; keep title case. */} {/* vale Stedi.TransactionNames = NO */} **Applies to:** [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) {/* vale Stedi.TransactionNames = YES */} The `benefitsInformation` array returns every benefit in a single, flat list with no plan grouping. When a patient has more than one plan, entries for every plan appear in the same array. Each `benefitsInformation[].code` property identifies either a coverage status or a type of benefit. Each entry's `serviceTypeCodes` array identifies the applicable service types. - An entry with a `code` of `1` (Active Coverage) reports that the patient has active coverage for the service types in `serviceTypeCodes`, such as `30` (Health Benefit Plan Coverage). - An entry with a `code` of `C` (Deductible) reports a specific benefit for those service types, with the amount in `benefitAmount`. {/* schema:EligibilityCheckResponseContent:unwrap */} ```json "planInformation": { "groupNumber": "186084", "planNumber": "UVdQAC5j6f" }, "planDateInformation": { "plan": "20240101-20241231" }, "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "planCoverage": "CHOICE PLUS", "insuranceTypeCode": "C1", "insuranceType": "Commercial", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "additionalInformation": [ { "description": "PROVIDER IS OUT NETWORK FOR MEMBER" } ] }, { "code": "C", "name": "Deductible", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "benefitAmount": "0", "coverageLevelCode": "FAM", "coverageLevel": "Family", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" } ] ``` ## Compare the response shapes [#compare-the-response-shapes] Stedi builds both shapes from the same X12 271 response. They differ in how they organize that information, what they name each property, and how they handle data that doesn't conform to the spec. ### What's different [#whats-different] The first difference is how the responses organize the patient's benefits information. In `plans`, each type of benefit has its own named array, and each array corresponds to one or more `benefitsInformation[].code` values. For example, `coPayment` contains the entries that `benefitsInformation` identifies with a `code` of `B` (Co-Payment). Most arrays map to a single code. The exception is `statuses`, which contains every coverage status, codes `1` through `8`. | `plans[].benefits` property | `benefitsInformation[].code` | | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `statuses` |
  • `1` - Active Coverage
  • `2` - Active - Full Risk Capitation
  • `3` - Active - Services Capitated
  • `4` - Active - Services Capitated to Primary Care Physician
  • `5` - Active - Pending Investigation
  • `6` - Inactive
  • `7` - Inactive - Pending Eligibility Update
  • `8` - Inactive - Pending Investigation
| | `benefitDescription` | `D` - Benefit Description | | `benefitDisclaimer` | `P` - Benefit Disclaimer | | `cannotProcess` | `V` - Cannot Process | | `cardReportedStolen` | `T` - Card(s) Reported Lost/Stolen | | `coInsurance` | `A` - Co-Insurance | | `contactFollowingEntityForInformation` | `U` - Contact Following Entity for Eligibility or Benefit Information | | `coPayment` | `B` - Co-Payment | | `costContainment` | `J` - Cost Containment | | `coverageBasis` | `CB` - Coverage Basis | | `deductible` | `C` - Deductible | | `exclusions` | `E` - Exclusions | | `healthCareFacility` | `X` - Health Care Facility | | `limitations` | `F` - Limitations | | `managedCareCoordinator` | `MC` - Managed Care Coordinator | | `nonCovered` | `I` - Non-Covered | | `notDeemedMedicalNecessity` | `O` - Not Deemed a Medical Necessity | | `otherOrAdditionalPayer` | `R` - Other or Additional Payor | | `otherSourceOfData` | `W` - Other Source of Data | | `outOfPocket` | `G` - Out of Pocket (Stop Loss) | | `preExistingCondition` | `M` - Pre-existing Condition | | `primaryCareProvider` | `L` - Primary Care Provider | | `priorYearsHistory` | `S` - Prior Year(s) History | | `reserve` | `K` - Reserve | | `secondSurgicalOpinionRequired` | `Q` - Second Surgical Opinion Required | | `servicesRestrictedToFollowingProvider` | `N` - Services Restricted to Following Provider | | `spendDown` | `Y` - Spend Down | | `unlimited` | `H` - Unlimited |
The following tabs show a $2,000 in-network co-payment for hospital room and board in each shape. ```json "plans": [ { "benefits": { "coPayment": [ { "amount": "2000", "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_NETWORK" }, "service": { "system": "STC", "value": "49", "definition": "Hospital - Room and Board" }, "timePeriod": "ADMISSION" } ] } } ] ``` ```json "benefitsInformation": [ { "code": "B", "name": "Co-Payment", "benefitAmount": "2000", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["49"], "serviceTypes": ["Hospital - Room and Board"], "timeQualifierCode": "36", "timeQualifier": "Admission", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" } ] ``` The response shapes also differ in how they handle invalid data. - **`plans`:** Stedi validates entries against their types. A cost-share entry with missing or unexpected data, such as a deductible with no amount or a co-payment with a percentage instead of an amount, appears in `benefits.invalidEntries` instead of the standard array. An invalid entry can contain `amount`, `percent`, and `quantity` at the same time, so it preserves exactly what the payer sent, and its `invalidReasons` property explains why it's non-standard. - **`benefitsInformation`:** Stedi passes payer data through as is, including values that don't conform to the spec. ### What's similar [#whats-similar] Outside the benefits themselves, both shapes return the same information: - `id` and `eligibilitySearchId`: Stedi's identifier for this eligibility check, and the identifier that groups checks for the same patient into one eligibility search. - `payer`, `provider`, and `subscriber`: The payer's business name and identifier, the entity that submitted the check, and the primary policyholder for the plan. - `errors`: The payer's [`AAA` rejection errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors), which explain why a payer rejected the check. - `warnings`: Issues with your request that can affect the results. - `x12`: The raw X12 EDI 271 response from the payer. - `meta`: Metadata Stedi uses for tracking and troubleshooting. ## Determine patient benefits [#determine-patient-benefits] - [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits): Determine whether the patient has coverage, when their benefits apply, and which benefits they have. - [Plan details](/healthcare/eligibility-plan-details): Find the plan name, plan and group numbers, and Medicare Advantage plans. - [Provider network status, authorizations, referrals](/healthcare/eligibility-network-status-authorization-referrals): Check network status and whether prior authorization or a referral is required. - [Patient responsibility](/healthcare/eligibility-patient-responsibility-benefits): Find co-payments, deductibles, out-of-pocket maximums, and accumulators. # STCs and procedure codes Source: https://www.stedi.com/docs/healthcare/eligibility-stc-procedure-codes Choose the right service type code (STC) or procedure code for an eligibility check, and test whether a payer supports a specific STC. You're likely running an eligibility check to determine the patient's coverage and financial responsibility for particular medical or dental services, such as chiropractic or hospice care. You can retrieve specific types of benefits information from the payer by including either a service type code (STC) or a procedure code in your request. However, it's not always clear which STC or procedure code to use for best results. This page explains how to choose the right STC or procedure code for your eligibility check, how to test whether a payer supports a specific STC, and how to map procedure codes to STCs when necessary. ## Should I use STCs or procedure codes? [#should-i-use-stcs-or-procedure-codes] It depends on the type of benefits information you want to retrieve. ### Medical benefits [#medical-benefits] You'll almost always need to submit an STC because most medical payers don't support procedure codes (CPT/HCPCS/CDT). Refer to our guidance for [choosing STCs](#choose-the-right-stc). ### Dental benefits [#dental-benefits] Many (but not all) dental payers support procedure codes. However, we recommend: 1. First try STC `35` - especially if you need information about general dental benefits. Many payers only return comprehensive dental-specific benefits for STC `35`. 1. Try the relevant CDT code if you still need more benefits information for a specific service. 1. If the CDT code still doesn't return what you need, try the STC mapped to that CDT code. Refer to our list of [common mappings](#dental) for dental benefits. ## Choose the right STC [#choose-the-right-stc] A Service Type Code (STC) is a two-character code that groups similar healthcare services into standard categories, such as `47` (Hospital) and `UC` (Urgent Care). STC support varies by payer: - Not all payers support all STCs. - Some payers only respond to the first STC you send and ignore the rest. - Some payers completely ignore the STCs in the request and always return a default response for STC `30` (Health Benefit Plan Coverage). - Some payers don't support multiple STCs in a single request. - Some payers do support multiple STCs, but only a limited number per request. When choosing an STC, we recommend: - Send the most specific STC you can for the services you're targeting. You should [test the STCs](#test-payer-stc-support) that seem most appropriate to determine which ones yield the most benefits information. Refer to our list of [STCs for common services](#stcs-for-common-services). - If no specific STC seems appropriate or if the payer doesn't support it, fall back to a [general benefit check](#general-benefit-checks). - Include only one STC per request, unless you've tested the payer and confirmed they support multiple STCs in a single request _and_ that the response contains better benefits information when you include more than one. If after testing, no STC produces the benefits information you need, you may need to call the payer or visit the payer portal. ### General benefit checks [#general-benefit-checks] Use STC `30` for general medical benefits or `35` for general dental benefits. These STCs are supported by all payers and are a good fall back when a payer doesn't support a more specific STC. When you send STC `30` in an eligibility check, all payers must return benefits information for the following STCs when the patient's plan covers them: - `1` (Medical Care) - `33` (Chiropractic) - `47` (Hospital) - `86` (Emergency Services) - `88` (Pharmacy) - `98` (Professional Physician Visit - Office) - `AL` (Vision - Optometry) - `MH` (Mental Health) - `UC` (Urgent Care) [CAQH CORE-certified payers](#required-stcs-for-core-certified-payers) are required to support a broader set of STCs. ### STCs for common services [#stcs-for-common-services] Try the following STCs in the order shown - from the most specific to more general alternatives. We recommend sending only one STC at a time, unless you've [tested the payer](#test-payer-stc-support) and confirmed they support multiple in a single request. We've also included the mapping to specific procedure codes where possible, to make it easier to determine the right STC for your use case. Try our interactive [Service Type Code Lookup](https://www.stedi.com/cpt-hcpcs-to-stc) tool for additional mappings. #### Medical [#medical] Ranges of applicable codes are represented as `rangeStart - rangeEnd`. {/* prettier-ignore-start */} | Procedure codes | Type of care | STCs to try | | ----------|--------------|-------------| | `97151 - 97157` | ABA Therapy | `BD`, `MH` | | `97810`, `97811 - 97814` | Acupuncture | `64`, `1` | | too many to list | Ambulatory surgical center (ASC) | `13`, `2`, `30` | | `96401 - 96549` | Chemotherapy | `ON`, `78`, `87`, `91`, `92` | | `96493` | Chemotherapy, IV push | `78`, `87`, `91`, `92` | | `96494` | Chemotherapy, additional infusion | `78`, `87`, `91`, `92` | | `99490`, `99439`, `99491`, `99437`, `99487` | Chronic Care Management (CCM) services | `A4`, `MH`, `98`, `1` | | too many to list | Dermatology | `3`, `98` | | `T1032`, `T1033` | Doula | `BT`, `BU`, `BV`, `1` | | `E1399` | Durable Medical Equipment | `DM`, `11`, `12`, `18` | | `96375` | IV push | `92` | | `96360`, `96365`, `96366` | IV Therapy/Infusion | `92`, `98` | | too many to list | Maternity (professional) | `BT`, `BU`, `BV`, `69` | | `97802` | Medical nutrition therapy | `98`, `MH`, `BZ`, `1` | | `97803` | Medical nutrition follow-up | `98`, `MH`, `BZ`, `1` | | too many to list | Mental health | `MH`, `96`, `98`, `A4`, `BD`, `CF` | | `95700 - 96020` | Neurology | `98` | | `99460`, `99463` | Newborn/facility | `65`, `BI` | | `97165 - 97168` and `97110`, `97530`, `97112`, `97140`, `97535`, `97116`, `97129` | Occupational therapy | `AD`, `98` | | `97110`, `97112`, `97116`, `97350`, and several others | Physical therapy | `PT`, `AE` | | too many to list | Podiatry | `93`, `98` | | too many to list | Primary care | `96`, `98`, `A4`, `A3`, `99`, `A0`, `A1`, `A2`, `98` | | `99214` | Physician office visit | `1`, `98`, `BY` | | `96130 - 96133`, `96136 - 96137` | Psychological testing evaluation | `MH`, `CF`, `A6`, `A8`, `A4`, `98`, `96` | | `90832 - 90834`, `90836 - 90840`, `90845 - 90847`, `90849`, `90853` | Psychotherapy | `MH`, `CF`, `A6`, `A8`, `A4`, `BD`, `98`, `96` | | too many to list | Rehabilitation | `A9`, `AA`, `AB`, `AC` | | `98975`, `98976`, `98977`, `98980`, `98981` | Remote Therapeutic Monitoring (RTM) services | `A4`, `98`, `MH`, `92`, `DM`, `1` | | `99304-99318` | Skilled Nursing | `AG`, `AH` | | `92507`, `92508`, `92521`, `92522`, `92523`, `92526`, `92607`, `92609`, `92605`, `92618` | Speech Therapy | `AF`, `98` | | `90791`, `90832`, `90834`, `90837`, `90853`, `99408`, `99409`, and `H0017-H0019` | Substance Abuse/Addiction | `AI`, `AJ`, `AK`, `MH` | | `99202-99215`, `99421-99423`, `99441-99443`, `G2010` and `G2012` | Telehealth | `9`, `98` | | `90867` | Transcranial magnetic stimulation | `A4`, `MH` | {/* prettier-ignore-end */} Use `13` (Ambulatory Service Center Facility) for procedures at a freestanding ambulatory surgical center. For surgery in a hospital outpatient department, use `53` (Hospital - Ambulatory Surgical) instead. #### Dental [#dental] Procedure codes are listed in ranges. For example, `D0xxx` represents CDT codes from `D0000` to `D0999`. {/* prettier-ignore-start */} | Procedure | Type of care | STCs to try | |---------------------|--------------------------------------|--------------| | `D0xxx` | Diagnostic (such as evaluations and radiographs) | `23` | | `D1xxx` | Preventive (such as prophylaxis, fluoride, and sealants) | `41` | | `D2xxx` | Restorative (fillings and crowns not tied to implants) | `25` | | `D3xxx` | Endodontics (such as root canals) | `26` | | `D4xxx` | Periodontics (such as SRP and perio maintenance) | `24` | | `D59xx` | Maxillofacial prosthetics (specifically for `D5900–D5999`, all other `D5xxx` use `39` instead) | `27` | | `D5xxx/D6xxx`, except `D59xx` | Prosthodontics (removable and fixed, such as dentures and bridges) | `39` | | `D7xxx` | Oral & maxillofacial surgery (such as extractions and osseous surgery) | `40` | | `D9xxx` | Adjunctive general services (such as palliative, occlusal guards, and anesthesia) | `28` | {/* prettier-ignore-end */} ### Full STC list [#full-stc-list] You can include the following STCs in an eligibility check. Not all payers support all STCs, so you should always [test each payer](#test-payer-stc-support) to ensure they support the STCs you plan to use. - The word physician in service type codes refers to any healthcare provider, including physician assistants, nurse practitioners, and other types of healthcare professionals. - **Don't send STCs that aren't in this list.** This list is specific to X12 version 005010, the mandated version for eligibility checks. It's different from the [X12 Service Type Codes](https://x12.org/codes/service-type-codes) list, which applies to X12 versions later than 005010. Payers shouldn't accept or send STCs not explicitly listed in version 005010. - `1` Medical Care - `2` Surgical - `3` Consultation - `4` Diagnostic X-Ray - `5` Diagnostic Lab - `6` Radiation Therapy - `7` Anesthesia - `8` Surgical Assistance - `9` Other Medical - `10` Blood Charges - `11` Used Durable Medical Equipment - `12` Durable Medical Equipment Purchase - `13` Ambulatory Service Center Facility - `14` Renal Supplies in the Home - `15` Alternate Method Dialysis - `16` Chronic Renal Disease (CRD) Equipment - `17` Pre-Admission Testing - `18` Durable Medical Equipment Rental - `19` Pneumonia Vaccine - `20` Second Surgical Opinion - `21` Third Surgical Opinion - `22` Social Work - `23` Diagnostic Dental - `24` Periodontics - `25` Restorative - `26` Endodontics - `27` Maxillofacial Prosthetics - `28` Adjunctive Dental Services - `30` Health Benefit Plan Coverage - **supported by all payers** - `32` Plan Waiting Period - `33` Chiropractic - `34` Chiropractic Office Visits - `35` Dental Care - `36` Dental Crowns - `37` Dental Accident - `38` Orthodontics - `39` Prosthodontics - `40` Oral Surgery - `41` Routine (Preventive) Dental - `42` Home Health Care - `43` Home Health Prescriptions - `44` Home Health Visits - `45` Hospice - `46` Respite Care - `47` Hospital - `48` Hospital - Inpatient - `49` Hospital - Room and Board - `50` Hospital - Outpatient - `51` Hospital - Emergency Accident - `52` Hospital - Emergency Medical - `53` Hospital - Ambulatory Surgical - `54` Long Term Care - `55` Major Medical - `56` Medically Related Transportation - `57` Air Transportation - `58` Cabulance - `59` Licensed Ambulance - `60` General Benefits - `61` In-vitro Fertilization - `62` MRI/CAT Scan - `63` Donor Procedures - `64` Acupuncture - `65` Newborn Care - `66` Pathology - `67` Smoking Cessation - `68` Well Baby Care - `69` Maternity - `70` Transplants - `71` Audiology Exam - `72` Inhalation Therapy - `73` Diagnostic Medical - `74` Private Duty Nursing - `75` Prosthetic Device - `76` Dialysis - `77` Otological Exam - `78` Chemotherapy - `79` Allergy Testing - `80` Immunizations - `81` Routine Physical - `82` Family Planning - `83` Infertility - `84` Abortion - `85` AIDS - `86` Emergency Services - `87` Cancer - `88` Pharmacy - `89` Free Standing Prescription Drug - `90` Mail Order Prescription Drug - `91` Brand Name Prescription Drug - `92` Generic Prescription Drug - `93` Podiatry - `94` Podiatry - Office Visits - `95` Podiatry - Nursing Home Visits - `96` Professional (Physician) - `97` Anesthesiologist - `98` Professional (Physician) Visit - Office - `99` Professional (Physician) Visit - Inpatient - `A0` Professional (Physician) Visit - Outpatient - `A1` Professional (Physician) Visit - Nursing Home - `A2` Professional (Physician) Visit - Skilled Nursing Facility - `A3` Professional (Physician) Visit - Home - `A4` Psychiatric - `A5` Psychiatric - Room and Board - `A6` Psychotherapy - `A7` Psychiatric - Inpatient - `A8` Psychiatric - Outpatient - `A9` Rehabilitation - `AA` Rehabilitation - Room and Board - `AB` Rehabilitation - Inpatient - `AC` Rehabilitation - Outpatient - `AD` Occupational Therapy - `AE` Physical Medicine - `AF` Speech Therapy - `AG` Skilled Nursing Care - `AH` Skilled Nursing Care - Room and Board - `AI` Substance Abuse - `AJ` Alcoholism - `AK` Drug Addiction - `AL` Vision (Optometry) - `AM` Frames - `AN` Routine Exam - Use for Routine Vision Exam only - `AO` Lenses - `AQ` Nonmedically Necessary Physical - `AR` Experimental Drug Therapy - `B1` Burn Care - `B2` Brand Name Prescription Drug - Formulary - `B3` Brand Name Prescription Drug - Non-Formulary - `BA` Independent Medical Evaluation - `BB` Partial Hospitalization (Psychiatric) - `BC` Day Care (Psychiatric) - `BD` Cognitive Therapy - `BE` Massage Therapy - `BF` Pulmonary Rehabilitation - `BG` Cardiac Rehabilitation - `BH` Pediatric - `BI` Nursery - `BJ` Skin - `BK` Orthopedic - `BL` Cardiac - `BM` Lymphatic - `BN` Gastrointestinal - `BP` Endocrine - `BQ` Neurology - `BR` Eye - `BS` Invasive Procedures - `BT` Gynecological - `BU` Obstetrical - `BV` Obstetrical/Gynecological - `BW` Mail Order Prescription Drug - Brand Name - `BX` Mail Order Prescription Drug - Generic - `BY` Physician Visit - Office: Sick - `BZ` Physician Visit - Office: Well - `C1` Coronary Care - `CA` Private Duty Nursing - Inpatient - `CB` Private Duty Nursing - Home - `CC` Surgical Benefits - Professional (Physician) - `CD` Surgical Benefits - Facility - `CE` Mental Health Provider - Inpatient - `CF` Mental Health Provider - Outpatient - `CG` Mental Health Facility - Inpatient - `CH` Mental Health Facility - Outpatient - `CI` Substance Abuse Facility - Inpatient - `CJ` Substance Abuse Facility - Outpatient - `CK` Screening X-ray - `CL` Screening Laboratory - `CM` Mammogram, High Risk Patient - `CN` Mammogram, Low Risk Patient - `CO` Flu Vaccination - `CP` Eyewear and Eyewear Accessories - `CQ` Case Management - `DG` Dermatology - `DM` Durable Medical Equipment - `DS` Diabetic Supplies - `GF` Generic Prescription Drug - Formulary - `GN` Generic Prescription Drug - Non-Formulary - `GY` Allergy - `IC` Intensive Care - `MH` Mental Health - `NI` Neonatal Intensive Care - `ON` Oncology - `PT` Physical Therapy - `PU` Pulmonary - `RN` Renal - `RT` Residential Psychiatric Treatment - `TC` Transitional Care - `TN` Transitional Nursery Care - `UC` Urgent Care ### Test payer STC support [#test-payer-stc-support] We recommend testing each payer to determine which STC(s) they support and which STC(s) return the most benefits information for the services you care about. To test whether a payer supports a specific STC: 1. Send a baseline request with just STC `30` for general medical benefits or `35` for general dental benefits. 1. Send a request with the specific STC that best matches the benefit type you want to check. For example, to check mental health benefits, you might send a request with STC `MH` (Mental Health). Use our list of [STCs for common services](#stcs-for-common-services) as a starting point. 1. Compare the baseline response with the response to the specific STC. If they're different, the payer likely supports the specific STC. You may also want to test whether the payer supports multiple STCs in a single request: 1. Send a baseline request with just STC `30` for general medical benefits or `35` for general dental benefits. 1. Send a request with multiple STCs matching the benefit types you want to check. 1. Compare the responses. If they change based on the number of STCs, the payer likely supports multiple STCs in a single request. If not, the payer may be ignoring or only partially supporting STCs - for example, they may only be returning information for the first STC. **Developers:** We recommend scripting your requests to speed up the testing process. Specifically, loop through candidate STCs and compare the responses against the baseline STC `30` or `35` response for the same patient. You can also save the `plans` or `benefitsInformation` array for each STC and diff them. ## Map procedure codes to STCs [#map-procedure-codes-to-stcs] It can be hard to map procedure codes to the right STC. For example, if a provider offers medical nutrition therapy and bills using CPT code 97802, should they use service type code `1` - Medical Care, `3` - Consultation, `MH` - Mental Health, or another option? Unfortunately, there's no standardized mapping between procedure codes and STCs. In fact, payers themselves often don't have an explicit mapping for their own health plans. Their eligibility check systems aren't necessarily directly integrated with their claims processing systems, so when you ask them which STC to use, they may not always be able to provide a good answer. Review our list of [STCs for common services](#stcs-for-common-services), which contains mappings to the associated procedure codes. Try our interactive [Service Type Code Lookup](https://www.stedi.com/cpt-hcpcs-to-stc) tool for additional mappings. If you don't find the procedure code you're looking for, use the following approaches to determine the best STC for your use case: - Review the payers' documentation for eligibility checks. Some payers provide a list of STCs they support and their mappings to procedure codes. - If you can't find the information in the payer's documentation, contact the payer directly or reach out to [Stedi support](https://www.stedi.com/contact), and we'll contact the payer for you. - For dental payers that don't support specific CDT codes, you can use either of these sources to map CDT codes to service type codes. You can either purchase a copy of these documents or contact Stedi support for recommendations about specific mappings: - NDEDIC's [Companion to ASC X12 270/271](https://ndedic.org/Sys/Store/Products/1016) - Table 6 in the American Dental Association's [Technical Report No. 1102](https://engage.ada.org/p/eg/ada-technical-report-no-1102-electronic-dental-benefits-eligibility-verification-e-book-1390?itm_source=pp-1316&itm_component=p-related). - If none of the above methods work, you can ask a medical coder with [AAPC certification](https://www.aapc.com/certifications) for guidance. Their familiarity with billable codes will help them make good recommendations about service type code mappings. Once you determine the right STC code(s), we recommend maintaining an internal document that contains the mappings for the health plans you most frequently bill. ## Required STCs for CORE-Certified payers [#required-stcs-for-core-certified-payers] CAQH CORE creates operating rules and frameworks that improve interoperability in healthcare data exchange. CORE requires certified payers to support a broader set of STC codes than those mandated for [general benefits inquiries](#general-benefit-checks). If the plan covers the service, certified payers must return benefit information for the following STCs. Visit CAQH CORE's website for a complete list of [CORE-Certified Health Plans](https://www.caqh.org/core/core-certified-organizations-pending-and-current). - `4` Diagnostic X-Ray - `5` Diagnostic Lab - `6` Radiation Therapy - `7` Anesthesia - `8` Surgical Assistance - `12` DME Purchase - `13` Ambulatory Service Center Facility - `18` DME Rental - `20` Second Surgical Opinion - `30` Health Benefit Plan Coverage - `33` Chiropractic - `62` MRI/CAT Scan - `65` Newborn Care - `68` Well Baby Care - `78` Chemotherapy - `80` Immunizations - `81` Routine Physical - `82` Family Planning - `86` Emergency Services - `93` Podiatry - `98` Physician Visit - Office - `99` Physician Visit - Inpatient - `A0` Physician Visit - Outpatient - `A3` Physician Visit - Home - `AD` Occupational Therapy - `AE` Physical Medicine - `AF` Speech Therapy - `AG` Skilled Nursing Care - `BG` Cardiac Rehabilitation - `BH` Pediatric ## STCs in the eligibility response [#stcs-in-the-eligibility-response] The payer may send benefits information for additional STCs you didn't request - this is expected. It can also mean that the payer is ignoring the STC you sent, which is why we recommend [testing payers](#test-payer-stc-support) to determine their support for specific STCs. ### Response shapes [#response-shapes] Stedi returns one of two [response shapes](/healthcare/eligibility-response-shapes), depending on the endpoint you called. Both contain the same benefits information, organized differently. You can identify them by the top-level array that organizes the patient's benefits information - either `plans` or `benefitsInformation`. | Top-level array | Endpoints | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `plans` | [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) | | `benefitsInformation` | [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) | Select the tab that matches the response shape for the endpoint you called. To determine whether the payer returns the benefits information you need, check the `service` object in each entry under [`plans[].benefits`](/healthcare/api-reference/post-eligibility-check#response.plans.benefits). Each entry applies to a single service, and `service.value` contains the STC. Stedi populates `service.definition` for STCs, but not for procedure codes such as `CDT`, `CPT`, and `HCPCS`, so you need your own lookup for those. Review the [service type code (STC) list](/healthcare/eligibility-stc-procedure-codes#full-stc-list) to determine which STCs are relevant to the benefits you're interested in and check for all of them in the response. This is helpful because the payer may return relevant benefits under a different STC than the one you submitted. For example, mental health benefits are typically returned with STC `MH` (Mental Health), but some payers may use other STCs, such as `A4` (Psychiatric), `CF` (Mental Health Provider - Outpatient), or `AI` (Substance Abuse) for related services. Check every entry with a relevant `service.value`, because the same STC can appear in multiple `plans[].benefits` entries. For example, a payer can return several `deductible` entries for service type code `30` that differ by `coverageLevel`, `timePeriod`, and `network.indicator`. The following example shows the patient's co-payment ($20) for psychiatric, psychotherapy, and social work in-office visits as three `coPayment` entries that share the same amount, network, and place of service. {/* schema:EligibilityCheckPlan:unwrapArray */} ```json "plans": [ { "benefits": { "coPayment": [ { "amount": "20", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "A4", "definition": "Psychiatric" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "VISIT", "priorAuthIndicator": "NOT_REQUIRED", "placesOfService": [{ "code": "11", "name": "Office" }] }, { "amount": "20", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "A6", "definition": "Psychotherapy" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "VISIT", "priorAuthIndicator": "NOT_REQUIRED", "placesOfService": [{ "code": "11", "name": "Office" }] }, { "amount": "20", "coverageLevel": "INDIVIDUAL", "service": { "system": "STC", "value": "22", "definition": "Social Work" }, "network": { "indicator": "IN_NETWORK" }, "timePeriod": "VISIT", "priorAuthIndicator": "NOT_REQUIRED", "placesOfService": [{ "code": "11", "name": "Office" }] } ] } } ] ``` To determine whether the payer returns the benefits information you need, check the [`benefitsInformation` array](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation). Each object in this array contains a `serviceTypeCodes` property that lists the applicable STCs. Review the [service type code (STC) list](/healthcare/eligibility-stc-procedure-codes#full-stc-list) to determine which STCs are relevant to the benefits you're interested in and check for all of them in the response. This is helpful because the payer may return relevant benefits under a different STC than the one you submitted. For example, mental health benefits are typically returned with STC `MH` (Mental Health), but some payers may use other STCs, such as `A4` (Psychiatric), `CF` (Mental Health Provider - Outpatient), or `AI` (Substance Abuse) for related services. Check all `benefitsInformation` objects with relevant `serviceTypeCodes` values, because the same service type code (STC) is typically repeated across multiple objects in the response. - Each object communicates a different aspect of benefits, such as coverage status, co-pays, or deductibles. - Payers also use multiple objects to describe different subsets of services within an STC. For example, the `MH` STC can have one entry for standard therapy and another that notes coverage for other treatments. The following example shows a `benefitsInformation` object that specifies a patient's co-payment ($20) for psychiatric, psychotherapy, and social work in-office visits. ```json { "code": "B", "name": "Co-Payment", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": ["A4", "A6", "22"], "serviceTypes": ["Psychiatric", "Psychotherapy", "Social Work"], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "20", "authOrCertIndicator": "N", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "industryCode": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "industryCode": "Office" } ] } ``` To learn more about interpreting the eligibility response, visit [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits). # Eligibility troubleshooting Source: https://www.stedi.com/docs/healthcare/eligibility-troubleshooting Find causes and fixes for common eligibility check rejections and errors, including payer AAA errors, and set up a retry strategy. A list of potential errors and possible resolutions when submitting 270/271 eligibility checks. ## Response shapes [#response-shapes] Stedi returns one of two [response shapes](/healthcare/eligibility-response-shapes), depending on the endpoint you called. Both contain the same benefits information, organized differently. You can identify them by the top-level array that organizes the patient's benefits information - either `plans` or `benefitsInformation`. | Top-level array | Endpoints | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `plans` | [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) | | `benefitsInformation` | [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility), [Insurance Discovery](/healthcare/api-reference/post-insurance-discovery), [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), [Real-Time Eligibility Check JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) | Sections with response examples or property names cover both response shapes, labeled `plans` and `benefitsInformation`. Select the label that matches the endpoint you called, and the page applies your selection to every section. ## Review eligibility check errors [#review-eligibility-check-errors] The [Eligibility check errors page](https://portal.stedi.com/app/healthcare/checks/reports/errors) shows a list of recent eligibility check `AAA` error codes. These are errors the payer returns when they reject your eligibility request. They specify the reasons for rejection and any recommended follow-up actions. To go to this page, click **Error checks** under **All checks** in the **Eligibility** section of the side navigation. ![Eligibility check errors page](/images/providers/eligibility-check-errors.png) The errors are grouped by error code, and you can filter the list by Payer ID. You can look up any payer's ID in the [Payer Network](https://www.stedi.com/healthcare/network). Click on an error code to review a list of all the instances of that error. This page helps you identify patterns in eligibility check failures. For example, if you see a large number of errors with code `75` (Subscriber/Insured Not Found) for a specific payer, you might want to investigate whether there are common issues with the patient data being submitted to that payer. Visit [Payer `AAA` errors](#payer-aaa-errors) for a complete list of `AAA` errors and their possible causes and resolutions. ## Retry strategy [#retry-strategy] Implementing the right retry strategy for eligibility check failures saves a lot of time and money. At a minimum, we **strongly recommend** automatically retrying every request that fails due to payer connectivity issues. Automatic retries resolve a significant portion of these types of failures without manual intervention. If you're submitting eligibility checks manually through the Stedi portal, you can use [Agentic Discovery](/healthcare/send-eligibility-checks-ui#agentic-discovery-recommended) to automate the retry and recovery process. Agentic Discovery automatically recovers from failures using best practices and can run insurance discovery checks if recovery fails. ### Payer connectivity issues [#payer-connectivity-issues] Payers return certain [`AAA` errors](/healthcare/eligibility-troubleshooting#payer-aaa-errors) when they're temporarily down, throttling requests, or having intermittent connectivity issues. Before you retry, check the error's follow-up action, which tells you whether the payer accepts the same request again. X12 responses include it as a code in `AAA04` (Follow-up Action Code). JSON responses include the code's label in the `followupAction` property. Automatically retry the following `AAA` error scenarios: - `42` (Unable to Respond at Current Time)\* - `42` (Unable to Respond at Current Time)\* and `79` (Invalid Participant Identification) - `80` (No Response received - Transaction Terminated) {/* prettier-ignore */} *Don't retry `42` errors with the following [follow-up actions](#payer-aaa-errors). They mean there's a problem with the request, so retrying returns the same error. Contact Stedi support instead. {/* vale Stedi.Please = NO */} {/* vale Stedi.Semicolons = NO */} - `C` (Please Correct and Resubmit) - `N` (Resubmission Not Allowed) - `S` (Do Not Resubmit; Inquiry Initiated to a Third Party) {/* vale Stedi.Please = YES */} {/* vale Stedi.Semicolons = YES */} Our recommended retry strategy depends on your eligibility check workflow. #### Real-time eligibility checks [#real-time-eligibility-checks] For real-time eligibility checks that require a response within a few minutes, we recommend: - Retry immediately and continue retrying for up to 2 minutes. - The recommended retry window is based on what's acceptable in real-time human workflows. For example, a patient checking in for an appointment at their doctor's office. - If the request is still unsuccessful, fail gracefully and escalate as needed. #### Scheduled eligibility checks [#scheduled-eligibility-checks] You may want to run scheduled or background eligibility checks to perform periodic refreshes for a patient population or when checking eligibility for upcoming appointments. If you're using the [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint (recommended), Stedi automatically retries checks that fail due to payer connectivity issues for 8 hours by default, or up to 24 hours if you set a longer [retry period](/healthcare/batch-refresh-eligibility-checks#configure-automatic-retries). Stedi doesn't retry `42` errors with a [follow-up action](#payer-connectivity-issues) of `C`, `N`, or `S`. If you're submitting real-time checks that can tolerate longer wait times, we recommend: - Wait 1 minute to perform the first retry. - Then, exponentially increase the wait between subsequent retries to up to 30 minutes between attempts. - We recommend retrying for at least 8 hours, but the retry window should be based on your business workflows. ### Other common error cases [#other-common-error-cases] You should also consider the following common error cases when implementing retries: {/* prettier-ignore-start */} | AAA error | HTTP status | Reason | Retry strategy | | --------- | ----------- | ------ | -------------- | | `42` | `429` | Request rejected before processing due to temporary capacity limits, typically from exceeding allowed concurrent requests. The response's `message` property contains `Unable to Respond at Current Time`. | Retry immediately. Monitor your open concurrent requests and replace any finished requests under your Stedi account limit. | | `79` | `400` | Either Stedi couldn't route the request to the payer, or the payer couldn't identify one of the participants in the request. | **Don't automatically retry.** Check the [Payer Network](https://www.stedi.com/healthcare/network) to confirm the payer ID you submitted supports eligibility checks. If it does, contact Stedi support to resolve. When a `79` appears alongside a `42`, follow the [payer connectivity issues](#payer-connectivity-issues) guidance instead. | {/* prettier-ignore-end */} Some errors that Stedi finds before sending the request to the payer, such as an unrecognized payer ID or a validation error, return an HTTP `400` status with a `message` property and no AAA error. Other checks, such as an invalid NPI or missing portal credentials, return a Stedi-generated AAA error with an HTTP `200` status. Don't retry these requests. Correct the request first. For details, visit [Stedi payer errors](#stedi-payer-errors) and [Validation errors](#validation-errors). | AAA error | HTTP status | Reason | Retry Strategy | | --------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `42` | `429` | Request rejected before processing due to temporary capacity limits, typically from exceeding allowed concurrent requests. | Retry immediately. Monitor your open concurrent requests and replace any finished requests under your Stedi account limit. | | `79` | `400` | Either Stedi doesn't recognize the payer ID you provided, the payer isn't configured for eligibility checks, or the payer rejected your request. | **Don't automatically retry.** Check the [Payer Network](https://www.stedi.com/healthcare/network) to confirm the payer ID you submitted supports eligibility checks. If it does, contact Stedi support to resolve. When a `79` appears alongside a `42`, follow the [payer connectivity issues](#payer-connectivity-issues) guidance instead. | ## Can't find payer ID [#cant-find-payer-id] You can use Stedi Agent to identify the correct payer for eligibility checks. This is helpful when: - You're receiving `AAA` errors indicating the payer can't find the subscriber (such as code `75` Subscriber/Insured Not Found) - You're unsure which Stedi Payer ID matches the insurance information on the patient's card. To identify a payer from a member card: 1. Go to the Stedi Agent [**Chats** page](https://portal.stedi.com/app/healthcare/chats) in the Stedi portal. 2. Click **New chat** and select the **Upload member ID card** option. 3. Upload a photo or scan of the front of the patient's insurance member card. 4. Review the results. The agent analyzes the card and either: - Successfully maps the information on the insurance card to a payer in Stedi's [Payer Network](https://www.stedi.com/healthcare/network). In this case, the agent returns information about the matching payer, including the payer's primary payer ID, Stedi payer ID, operating states, and supported transactions. - Indicates that it cannot read the information from the card. Try taking a clearer picture and resubmitting. - Indicates that it cannot determine the payer ID. Contact Stedi support. ## Payer unable to find patient [#payer-unable-to-find-patient] Sometimes, a payer can't return benefits information for a patient even when the patient exists in their system. This problem can occur for a couple reasons. ### Multiple matching records [#multiple-matching-records] Payers can have multiple records of patients with the same name and date of birth. The payer cannot return benefits information unless they are able to identify a unique match within their system. To avoid this issue, we recommend: - Include all of the demographic information available for a patient. - Include the patient's member ID, if available. ### Information discrepancies [#information-discrepancies] There can be discrepancies between the information the provider has collected from the patient and the record the payer has in their system. These discrepancies can lead to issues returning a patient, even though a match exists. Some examples include differences in spelling the patient's name, using a nickname instead of the full name ("Nick" vs. "Nicolas"), and accidentally transposing numbers in the date of birth. If a request fails to return the expected member in the response, we recommend progressively sending additional eligibility check requests with fewer patient identity and demographic data elements, or different combinations of those. This allows you to identify and handle cases where there are data errors or discrepancies between payer and provider data. ### Name mismatches [#name-mismatches] If the payer fails to find a matching plan member due to a name mismatch, the `errors` array in the response typically has the `code` set to one of the following values: - `65`: Invalid/Missing Patient Name - `67`: Patient Not Found - `73`: Invalid/Missing Subscriber/Insured Name - `75`: Subscriber/Insured Not Found These error codes are set by the payer, not by Stedi, so it's possible that other error codes could be returned. Resolving the error may require trying different name variations until the check is successful. - Replace any nickname or shortened name with the full legal name, for example "Robert" instead of "Bob". - Replace any non-English or accented characters (letters with diacritical marks) such as "Ñ" or "é" with the closest equivalent within the character restrictions. Stedi automatically replaces most such characters with the usual closest equivalent but this might not match the payer's record. For example, the character "Đ" could be transliterated to "D" or "J" depending on the romanization system used. - For compound names try using only one or the other part. You can also try try removing the separator, or changing the separator from hyphen to space, or vice versa. Some payers may ignore special or separator characters when performing name searches. - If the patient has recently changed their name, for example due to marriage, then the name stated by the patient or printed on their ID card might not match the payer's record. Try both the current and previous name. ## CMS attestation required [#cms-attestation-required] CMS requires providers to complete attestation (also called HETS EDI Enrollment) before running Medicare eligibility checks. This requirement applies to traditional Medicare only, not Medicare Advantage (Part C) or Part D plans. If you submit a Medicare eligibility check without completing attestation, CMS rejects the request with an [`AAA` error](#payer-aaa-errors) with code `41` (Authorization/Access Restrictions). To resolve this error, complete the [CMS eligibility enrollment requirement](/healthcare/create-manage-transaction-enrollments#cms-eligibility-enrollment) for the billing NPI. Attestation takes approximately 5-15 minutes per NPI. ## Portal credentials [#portal-credentials] The following payers are some of the few that require additional credentials to process eligibility checks: - Medicaid California (Payer ID: `100065`) | [Provider Portal](https://www.medi-cal.ca.gov/) - Kern Family Health Care (Payer ID: `77039`) | [Provider Portal](https://provider.kernfamilyhealthcare.com/) - AltaMed (Payer ID: `ALTAM`) | [Provider Portal](https://www.altamed.org/providers) When submitting eligibility checks to these payers, you must include the Provider Identification Number (PIN) the requesting provider uses for the Medi-Cal program. This PIN will be different for each provider. - **JSON endpoint**: Set the [`provider.additionalInformation.personalIdentificationNumber`](/healthcare/api-reference/post-eligibility-check#body.provider.additionalInformation.personalIdentificationNumber) property to the provider's PIN. - **Legacy JSON endpoint**: Set the [`portalPassword`](/healthcare/api-reference/post-healthcare-eligibility-legacy#body.portalPassword) property to the provider's PIN. You can omit the [`portalUsername`](/healthcare/api-reference/post-healthcare-eligibility-legacy#body.portalUsername). - **Batch Eligibility Check endpoint**: Set the [`portalPassword`](/healthcare/api-reference/post-healthcare-batch-eligibility#body.items.portalPassword) property in each item to the provider's PIN. You can omit `portalUsername`. - **Raw X12 and SOAP endpoints**: Include the provider's PIN in `Loop 2100B REF02` when `REF01` is set to `4A` (Personal Identification Number (PIN)). - **Stedi portal**: To add this field to the [eligibility check form](https://portal.stedi.com/app/healthcare/checks/create), click **Select fields** and check the box next to **Personal identification number**. If you don't include the provider's PIN or if the PIN is invalid, you'll receive an [`AAA` error](#payer-aaa-errors) with code `41` (Authorization/Access Restrictions) at the payer or provider level. ## Missing member ID [#missing-member-id] Our eligibility check endpoints require submitting at least one of the patient's member ID, date of birth, or last name in the request. However, some payers always require the member ID and reject requests without it. Stedi tracks which payers require the member ID and returns a warning when you submit an eligibility check to one of those payers without it. The warning appears in the `warnings` array along with the [`AAA` error](#payer-aaa-errors) from the payer in the `errors` array. ```json { "warnings": [ { "code": "request::270::member_id_required", "description": "This payer requires the patient's member ID to be included in eligibility requests." } ], "errors": [ { "code": "72", "description": "Invalid/Missing Subscriber/Insured ID", ... } ], ... } ``` Eligibility check requirements vary by payer. If we don't know whether a payer requires the member ID for eligibility checks, we don't return a warning. ## Unsupported request properties [#unsupported-request-properties] The [Real-Time Eligibility Check (270/271) JSON - Legacy](/healthcare/api-reference/post-healthcare-eligibility-legacy) endpoint doesn't reject a request that contains property names it doesn't recognize. Stedi ignores those properties, runs the eligibility check with the rest of the request, and returns a warning listing what it ignored. If you're not getting the results you expected, review the `warnings` array. Stedi never sends an ignored property to the payer, so a check can succeed while missing information you meant to include, and the results won't reflect the data you thought you sent. The warning uses the code `request::unsupported_field_names`, and Stedi lists every unsupported property in a single warning. Stedi identifies each property with a [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) path, using `/` as a separator and an index number for array entries. For example, `/dependents/0/firstNames`. Check the property names against the [API reference](/healthcare/api-reference/post-healthcare-eligibility-legacy) and resubmit. In the following example, the request misspelled `memberId` as `memberID` and used `serviceTypeCode` instead of `serviceTypeCodes`. Stedi ignored both, so it ran the check without the patient's member ID and without the requested service types. ```json { "warnings": [ { "code": "request::unsupported_field_names", "description": "The following request field(s) are not supported: `/subscriber/memberID`, `/encounter/serviceTypeCode`. You may want to check these field names against Stedi's API Reference and resubmit." } ] } ``` The [Real-Time Eligibility Check (270/271) JSON](/healthcare/api-reference/post-eligibility-check) endpoint rejects requests that contain unsupported property names instead of returning a warning. ## Errors [#errors] You may encounter the following types of errors when submitting eligibility requests. ### Stedi payer errors [#stedi-payer-errors] When Stedi can't process your eligibility check because of the payer ID you provided, it returns an HTTP `400` status code. The response contains a `message` property with one of the following messages: {/* prettier-ignore-start */} | Error message | Possible causes and resolutions | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Payer {payer ID} (Stedi Payer ID {Stedi payer ID}) is not configured for {transaction type}. Please check our published payer list or contact Stedi support to resolve.` | Stedi doesn't yet support this transaction type for this payer, or there's a mis-mapping of payer IDs. Contact us with the name of the payer, and we'll investigate the issue. | | `Payer {payer ID} is not configured. Please check our published payer list or contact Stedi support to resolve.` | Stedi doesn't recognize the payer ID you provided. Double-check the payer ID in the [Stedi Payer Network](https://www.stedi.com/healthcare/network), or contact us with the name of the payer, and we'll help you determine the correct payer ID. | {/* prettier-ignore-end */} The following error resulted from an unrecognized payer ID: ```json { "message": "Payer AHS is not configured. Please check our published payer list or contact Stedi support to resolve." } ``` An HTTP `400` response with an AAA `79` (Invalid Participant Identification) error in the `errors` array means something different. Either Stedi couldn't route the request to the payer, or the payer couldn't identify one of the participants in the request. In this case, the `message` property contains `One of the participants in the request could not be identified. Check the payer ID, provider identifiers and member details against the payer's requirements.` The response contains an AAA `79` (Invalid Participant Identification) error. The `errors[].possibleResolutions` property contains one of the following messages: {/* prettier-ignore-start */} | Error message | Possible causes and resolutions | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Payer {payer ID} (Stedi Payer ID {Stedi payer ID}) is not configured for {transaction type}. Please check our published payer list or contact Stedi support to resolve.` | Stedi doesn't yet support this transaction type for this payer, or there's a mis-mapping of payer IDs. Contact us with the name of the payer, and we'll investigate the issue. | | `Payer {payer ID} is not configured. Please check our published payer list or contact Stedi support to resolve.` | Stedi doesn't recognize the payer ID you provided. Double-check the payer ID in the [Stedi Payer Network](https://www.stedi.com/healthcare/network), or contact us with the name of the payer, and we'll help you determine the correct payer ID. | {/* prettier-ignore-end */} The following error resulted from an unrecognized payer ID: {/* schema:EligibilityCheckResponseContent */} ```json { "meta": { "outboundTraceId": "01KEJ02BRD3H716AP3HRBDM5Y8" }, "controlNumber": "602859072", "tradingPartnerServiceId": "AHS", "errors": [ { "code": "79", "description": "Invalid Participant Identification", "followupAction": "Please Correct and Resubmit", "location": "2100A", "possibleResolutions": "Payer AHS is not configured. Please check our published payer list or contact Stedi support to resolve." } ], "status": "ERROR", "eligibilitySearchId": "019ba401-2f01-7262-a2b8-8707b70198c9", "id": "ec_9d6a4f2b-1c7e-4e9a-b3f8-0a2c5e1d7b84" } ``` ### Validation errors [#validation-errors] You may receive validation errors from Stedi or, rarely, from the payer. #### Stedi [#stedi] Stedi validates the structure of your eligibility request and won't submit your request to the payer if it's missing required fields or if its data uses an invalid format. Instead, Stedi returns an HTTP `400` status code. The following Stedi validation error resulted from a request without a provider identifier: ```json { "message": "Missing required field: provider npi, tin, ssn, ein, serviceProviderNumber, or pharmacyProcessorNumber" } ``` The following Stedi validation error resulted from an invalid date format. Dates must use the `YYYY-MM-DD` format. The `errors` array lists each property that failed validation. ```json { "message": "1 validation error detected. Value at '/subscriber/dateOfBirth' failed to satisfy constraint: Member must satisfy regular expression pattern: ^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$", "errors": [ { "path": "/subscriber/dateOfBirth", "message": "Value at '/subscriber/dateOfBirth' failed to satisfy constraint: Member must satisfy regular expression pattern: ^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$" } ] } ``` The following Stedi validation error resulted from a missing required property: ```json { "message": "Missing required field: provider npi, serviceProviderNumber, payorId, taxId, ssn, pharmacyProcessorNumber, servicesPlanID, or employersId is required", "code": "BAD_REQUEST", "eligibilitySearchId": "019ba403-e5ce-7181-8a2f-8cf093dde812", "id": "ec_9d6a4f2b-1c7e-4e9a-b3f8-0a2c5e1d7b84" } ``` The following shows an example of a Stedi validation error resulting from an invalid date format: ```json { "message": "subscriber.dateOfBirth: Provided date should be valid and in YYYYMMDD format.", "code": "INVALID_REQUEST_BODY", "eligibilitySearchId": "019ba405-e1ec-79e2-bde2-830664a901df", "id": "ec_9d6a4f2b-1c7e-4e9a-b3f8-0a2c5e1d7b84" } ``` #### Payer (999 rejections) [#payer-999-rejections] Stedi's validation catches the majority of syntax and structural issues. However, some payers may occasionally return a [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231/01HRF41ES1DVGCA6X1EHSRPFXZ) indicating that the request was rejected. Stedi can usually translate these 999 rejections into a more user-friendly 271 response with descriptive [`AAA` errors](#payer-aaa-errors) in the `errors` array. When Stedi can't generate a 271, the response contains the raw 999 in the `x12` property and an error with code `999` in the `errors` array. The error's `possibleResolutions` property explains that the payer rejected the request because of validation errors. The following example shows a 999 rejection: {/* schema:CreateEligibilityCheckResponseContent */} ```json { "id": "ec_019c00bb-2293-7241-b283-9b94642b4ec4", "eligibilitySearchId": "019c00bb-229e-72c3-8585-8b28f0556a38", "meta": { "outboundTraceId": "01KG0BP8NA69HK7095HE8XG03F" }, "payerId": "TESTPAYER", "payer": { "type": "PAYER", "identification": "TESTPAYER" }, "errors": [ { "code": "999", "description": "Implementation Acknowledgment", "followupAction": "Please Correct and Resubmit", "location": "ENVELOPE", "possibleResolutions": "The payer or intermediary clearinghouse rejected the request with validation errors. The original EDI is returned in the `x12` field. Contact Stedi Support if you need further help." } ], "x12": "..." } ``` When Stedi can't generate a 271, we return the raw 999 in the `x12` property, set the `status` to `ERROR`, and include the number of EDI syntax errors in the `implementationTransactionSetSyntaxError` property. The `errors` array includes a general description indicating that the payer rejected the request due to validation errors. The following example shows a 999 that resulted from sending the payer more than one STC code in the request: {/* schema:EligibilityCheckResponseContent */} ```json { "id": "ec_019c00bb-2293-7241-b283-9b94642b4ec4", "transactionSetAcknowledgement": "R", "tradingPartnerServiceId": "TESTPAYER", "errors": [ { "description": "The payer or intermediary clearinghouse rejected the request with validation errors. The original EDI response is returned in the `x12` field. Contact Stedi Support if you need further help." } ], "implementationTransactionSetSyntaxError": "5", "controlNumber": "123456789", "x12": "ISA*00* *00* *ZZ*STEDI *01*11234567890 *260127*1032*^*00501*000000000*0*P*:~GS*FA*STEDI*11234567890*20260127*1032*0*X*005010X231A1~ST*999*0001*005010X231A1~AK1*HS*1*005010X231A1~AK2*270*0001~IK3*EQ*12**8~IK4*1*0*5*32~IK5*R*5~AK9*R*1*1*0~SE*8*0001~GE*1*0~IEA*1*000000000~", "meta": { "outboundTraceId": "01KG0BP8NA69HK7095HE8XG03F" }, "status": "ERROR", "eligibilitySearchId": "019c00bb-229e-72c3-8585-8b28f0556a38" } ``` ### Payer AAA errors [#payer-aaa-errors] When a payer rejects your eligibility check, the 271 response contains one or more [`AAA` Request Validation segments](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-response-x279a1/01GS66YHZPB37ABF34DBPSR213#properties.detail.properties.information_source_level_HL_loop.items.properties.request_validation_AAA) that specify the reasons for the rejection and any recommended follow-up actions. Stedi includes this information in the JSON response. Common causes for AAA errors include: - Missing or incorrect information for the subscriber, dependent, provider, or payer. In this case, you should correct any errors before resubmitting. - Issues with payer [enrollment](/healthcare/credentialing-and-enrollment). Many of these issues require that the provider contact the payer directly to resolve, due to PHI/HIPAA guidelines. - The payer's system is down or experiencing issues. In this case, the payer may not have actually validated the data in your request. If you receive these types of errors, you should wait a few minutes and resend the request again. Each error includes a follow-up action that tells you what to do next. X12 responses include it as a code in `AAA04` (Follow-up Action Code). JSON responses include the code's label in the `followupAction` property. {/* X12 follow-up action code descriptions keep their spec semicolons. */} {/* vale Stedi.Semicolons = NO */} {/* vale Stedi.Please = NO */} {/* vale Stedi.ComplexVerbs = NO */} {/* prettier-ignore-start */} | X12 code | `followupAction` | | -------- | ---------------- | | `C` | Please Correct and Resubmit | | `N` | Resubmission Not Allowed | | `P` | Please Resubmit Original Transaction | | `R` | Resubmission Allowed | | `S` | Do Not Resubmit; Inquiry Initiated to a Third Party | | `W` | Please Wait 30 Days and Resubmit | | `X` | Please Wait 10 Days and Resubmit | | `Y` | Do Not Resubmit; We Will Hold Your Request and Respond Again Shortly | {/* prettier-ignore-end */} {/* vale Stedi.ComplexVerbs = YES */} {/* vale Stedi.Please = YES */} {/* vale Stedi.Semicolons = YES */} AAA errors appear in the top-level [`errors`](/healthcare/api-reference/post-eligibility-check#response.errors) array. The `location` property tells you where the error occurred. Use the matching table to find possible causes and resolutions: - `ENVELOPE` and `PAYER`: [Payer table](#payer) - `PROVIDER`: [Provider table](#provider) - `SUBSCRIBER` and `SUBSCRIBER_BENEFITS`: [Subscriber table](#subscriber) - `DEPENDENT` and `DEPENDENT_BENEFITS`: [Dependents table](#dependents) The following example shows an error at the subscriber level: {/* schema:CreateEligibilityCheckResponseContent */} ```json { "id": "ec_550e8400-e29b-41d4-a716-446655440000", "payer": { "type": "PAYER", "name": { "organization": "Aetna" } }, "errors": [ { "code": "72", "description": "Invalid/Missing Subscriber/Insured ID", "followupAction": "Please Correct and Resubmit", "location": "SUBSCRIBER", "possibleResolutions": "The subscriber's member ID is either missing or invalid.\n• Check the `subscriber.memberId`.\n• Ensure the member ID doesn't include the [Card Issuer Identifier](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).\n• If you can't locate the correct member ID, try running an [insurance discovery check](https://www.stedi.com/docs/healthcare/insurance-discovery) to retrieve the patient's benefits information instead." } ], "x12": "..." } ``` AAA errors can be present at multiple different levels in the response, depending on the type. The following example shows an error at the subscriber level (`subscriber.aaaErrors`): {/* schema:EligibilityCheckResponseContent */} ```json { "subscriber": { "memberId": "123456789", "firstName": "JANE", "lastName": "DOE", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "dateOfBirth": "19001103", "aaaErrors": [ { "field": "AAA", "code": "75", "description": "Subscriber/Insured Not Found", "followupAction": "Please Correct and Resubmit", "location": "Loop 2100C", "possibleResolutions": "- Subscriber was not found." } ] } } ``` However, all errors at the `payer`, `provider`, `subscriber`, and `dependents` levels are also reported in the top-level `errors` array in the eligibility check response. Visit [Eligibility mock requests](/healthcare/api-reference/mock-requests-eligibility-checks) to retrieve more examples of common AAA errors in eligibility responses. To help with troubleshooting, we include additional strings containing possible causes and resolutions for each `AAA` error. We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. **Don't build programmatic logic that depends on matching these strings exactly.** #### Payer [#payer] You may receive the following types of errors at the payer level. {/* The AAA tables mirror the possibleResolutions text each endpoint returns. */} {/* vale Stedi.PassiveVoice = NO */} {/* vale Stedi.Should = NO */} {/* vale Stedi.UnapprovedWords = NO */} {/* vale Stedi.Acronyms = NO */} {/* vale Stedi.Terms = NO */} {/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | ----------- | ------------------------------- | | `04` | Authorized Quantity Exceeded | You included too many patients in the request - you can only request benefits information for one patient at a time.
  • When the patient is the subscriber, put their details in the `subscriber` object.
  • When the patient is the dependent, put the subscriber's details in the `subscriber` object and the patient's details in the `dependent` object.
| | `41` | Authorization/Access Restrictions | The problem is either:
  • An issue with the `provider.npi` or `provider.tin`. This typically indicates that the provider isn't properly [enrolled](/healthcare/credentialing-and-enrollment) with the payer.
  • An issue with the `provider.additionalInformation.personalIdentificationNumber` or `provider.additionalInformation.userId` you provided.
| | `42` | Unable to Respond at Current Time |
  • **Follow-up action `C`, `N`, or `S`**: There is a problem with your request. Contact Stedi Support.
  • **Any other follow-up action**: The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues.
| | `79` | Invalid Participant Identification | There is a problem connecting with this payer. Contact Stedi support. | | `80` | No Response received - Transaction Terminated | The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues. | | `T4` | Payer Name or Identifier Missing | The problem is either:
  • An issue with the `payerName` or `payerId`. Check the [Payer Network](https://www.stedi.com/healthcare/network) to ensure you're using valid values.
  • A payer processing issue. If the issue persists, contact Stedi support to resolve.
| {/* prettier-ignore-end */}
{/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | --------------------------------------------- | -------------------------------- | | `04` | Authorized Quantity Exceeded | You included too many patients in the request - you can only request benefits information for one patient at a time.
  • When the patient is the subscriber, put their details in the `subscriber` object.
  • When the patient is the dependent, put the subscriber's details in the `subscriber` object and the patient's details in the `dependents` array.
| | `41` | Authorization/Access Restrictions | The problem is either:
  • An issue with the `provider.npi` or `provider.federalTaxpayersIdNumber`. This typically indicates that the provider isn't properly [enrolled](https://www.stedi.com/docs/healthcare/credentialing-and-enrollment) with the payer.
  • An issue with the `portalPassword` or `portalUsername` you provided.
| | `42` | Unable to Respond at Current Time |
  • **Follow-up action `C`, `N`, or `S`**: There is a problem with your request. Contact Stedi Support.
  • **Any other follow-up action**: The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues.
| | `79` | Invalid Participant Identification | There is a problem connecting with this payer. Contact Stedi support. | | `80` | No Response received - Transaction Terminated | The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues. | | `T4` | Payer Name or Identifier Missing | The problem is either:
  • An issue with the `tradingPartnerName` or `tradingPartnerServiceId`. Check the [Payer Network](https://www.stedi.com/healthcare/network) to ensure you're using valid values.
  • A payer processing issue. If the issue persists, contact Stedi support to resolve.
| {/* prettier-ignore-end */}
{/* vale Stedi.Terms = YES */} {/* vale Stedi.Acronyms = YES */} {/* vale Stedi.UnapprovedWords = YES */} {/* vale Stedi.Should = YES */} {/* vale Stedi.PassiveVoice = YES */} #### Provider [#provider] You may receive the following types of errors at the provider level. {/* The AAA tables mirror the possibleResolutions text each endpoint returns. */} {/* vale Stedi.PassiveVoice = NO */} {/* vale Stedi.Should = NO */} {/* vale Stedi.UnapprovedWords = NO */} {/* vale Stedi.Acronyms = NO */} {/* vale Stedi.Terms = NO */} {/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | ----------- | ------------------------------- | | `15` | Required application data missing | The payer needs more information about the provider requesting the eligibility check. Try including the `provider.tin`, typically their EIN or SSN. | | `41` | Authorization/Access Restrictions | The problem is either:
  • An issue with the `provider.npi` or `provider.tin`. This typically indicates that the provider isn't properly [enrolled](/healthcare/credentialing-and-enrollment) with the payer.
  • An issue with the `provider.additionalInformation.personalIdentificationNumber` or `provider.additionalInformation.userId` you provided.
  • The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `43` | Invalid/Missing Provider Identification | The problem is either:
  • The `provider.npi` isn't registered correctly with the payer.
  • The payer requires an agreement to begin processing eligibility checks for this provider.
Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether this payer requires transaction enrollment for eligibility checks.
  • If yes, you must submit a [transaction enrollment request](/healthcare/transaction-enrollment) for the provider.
  • If not, the payer may still require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `44` | Invalid/Missing Provider Name | The provider's NPI is registered with an incorrect name for this payer.
  • Verify that the `provider.name.organization` or the `provider.name.person.firstName` and `provider.name.person.lastName` are correct. If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines.
  • The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `45` | Invalid/Missing Provider Specialty | The provider's NPI isn't registered with the payer under the correct specialty. The provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment). | | `46` | Invalid/Missing Provider Phone Number | The provider's phone number doesn't match the one registered with the payer or the one in the NPPES system. The provider must contact the payer directly to resolve this issue because of PHI/HIPAA guidelines. The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment). | | `47` | Invalid/Missing Provider State | The `provider.address` either doesn't match the address registered with the payer or it doesn't match the provider's address in the NPPES system.
  • Ensure the information in `provider.address` is correct.
  • If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `48` | Invalid/Missing Referring Provider Identification Number | The referring provider (specified in `subscriber.provider.code` and `subscriber.provider.reference`, or `dependent.provider.code` and `dependent.provider.reference` when the patient is a dependent) either:
  • Isn't enrolled correctly with the payer. Contact Stedi support to resolve.
  • Isn't registered with the payer's health plans. The provider must contact the payer directly to complete the registration process.
  • Must complete additional [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment) with the payer.
| | `50` | Provider Ineligible for Inquiries | The provider requesting the eligibility check isn't registered with the payer for the service type in the `encounter.services[]` entries with system STC.
  • Ensure the `provider.npi` and those service type codes are correct.
  • If so, the provider must contact the payer directly to complete the registration process. Contact Stedi support with questions.
| | `51` | Provider Not on File | The provider isn't registered with the payer.
  • Ensure the `provider.npi` is correct.
  • If so, the provider must contact the payer directly to complete the registration process. This can include [credentialing and/or enrollment](/healthcare/credentialing-and-enrollment). Contact Stedi support with questions.
| | `79` | Invalid Participant Identification | There is a problem connecting with this payer. Contact Stedi support. | | `97` | Invalid or Missing Provider Address | The payer requires the address for the provider requesting the eligibility check. Retry with the provider's complete address in the `provider.address` object. | | `T4` | Payer Name or Identifier Missing | The problem is either:
  • An issue with the `payerName` or `payerId`. Check the [Payer Network](https://www.stedi.com/healthcare/network) to ensure you're using valid values.
  • A payer processing issue. If the issue persists, contact Stedi support to resolve.
| {/* prettier-ignore-end */}
{/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | -------------------------------------------------------- | -------------------------------- | | `15` | Required application data missing | The payer needs more information about the provider requesting the eligibility check. Try including the `provider.taxId`, typically their EIN or SSN. | | `41` | Authorization/Access Restrictions | The problem is either:
  • An issue with the `provider.npi` or `provider.federalTaxpayersIdNumber`. This typically indicates that the provider isn't properly [enrolled](/healthcare/credentialing-and-enrollment) with the payer.
  • An issue with the `portalPassword` or `portalUsername` you provided.
  • The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `43` | Invalid/Missing Provider Identification | The problem is either:
  • The `provider.npi` isn't registered correctly with the payer.
  • The payer requires an agreement to begin processing eligibility checks for this provider.
Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether this payer requires transaction enrollment for eligibility checks.
  • If yes, you must submit a [transaction enrollment request](/healthcare/transaction-enrollment) for the provider.
  • If not, the payer may still require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `44` | Invalid/Missing Provider Name | The provider's NPI is registered with an incorrect name for this payer.
  • Verify that the `provider.organizationName` or the `provider.firstName` and `provider.lastName` are correct. If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines.
  • The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `45` | Invalid/Missing Provider Specialty | The provider's NPI isn't registered with the payer under the correct specialty. The provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment). | | `46` | Invalid/Missing Provider Phone Number | The provider's phone number doesn't match the one registered with the payer or the one in the NPPES system. The provider must contact the payer directly to resolve this issue because of PHI/HIPAA guidelines. The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).| | `47` | Invalid/Missing Provider State | The `provider.address` either doesn't match the address registered with the payer or it doesn't match the provider's address in the NPPES system.
  • Ensure the information in `provider.address` is correct.
  • If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. The payer may require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment).
| | `48` | Invalid/Missing Referring Provider Identification Number | The referring provider (specified in `subscriber.providerIdentifier`) either:
  • Isn't enrolled correctly with the payer. Contact Stedi support to resolve.
  • Isn't registered with the payer's health plans. The provider must contact the payer directly to complete the registration process.
  • Must complete additional [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment) with the payer.
| | `50` | Provider Ineligible for Inquiries | The provider requesting the eligibility check isn't registered with the payer for the service type in `encounter.serviceTypeCodes`.
  • Ensure the `provider.npi` and `encounter.serviceTypeCodes` are correct.
  • If so, the provider must contact the payer directly to complete the registration process. Contact Stedi support with questions.
| | `51` | Provider Not on File | The provider isn't registered with the payer.
  • Ensure the `provider.npi` is correct.
  • If so, the provider must contact the payer directly to complete the registration process. This can include [credentialing and/or enrollment](/healthcare/credentialing-and-enrollment). Contact Stedi support with questions.
| | `79` | Invalid Participant Identification | There is a problem connecting with this payer. Contact Stedi support. | | `97` | Invalid or Missing Provider Address | The payer requires the address for the provider requesting the eligibility check. Retry with the provider's complete address in the `provider.address` object. | | `T4` | Payer Name or Identifier Missing | The problem is either:
  • An issue with the `tradingPartnerName` or `tradingPartnerServiceId`. Check the [Payer Network](https://www.stedi.com/healthcare/network) to ensure you're using valid values.
  • A payer processing issue. If the issue persists, contact Stedi support to resolve.
| {/* prettier-ignore-end */}
{/* vale Stedi.Terms = YES */} {/* vale Stedi.Acronyms = YES */} {/* vale Stedi.UnapprovedWords = YES */} {/* vale Stedi.Should = YES */} {/* vale Stedi.PassiveVoice = YES */} #### Subscriber [#subscriber] You may receive the following types of errors at the subscriber level. {/* The AAA tables mirror the possibleResolutions text each endpoint returns. */} {/* vale Stedi.PassiveVoice = NO */} {/* vale Stedi.Should = NO */} {/* vale Stedi.UnapprovedWords = NO */} {/* vale Stedi.Acronyms = NO */} {/* vale Stedi.Terms = NO */} {/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | ----------- | ------------------------------- | | `15` | Required application data missing | The payer likely needs more information about the subscriber to complete the eligibility check. We recommend providing `subscriber.memberId`, `subscriber.dateOfBirth`, `subscriber.name.person.firstName`, and `subscriber.name.person.lastName`. Given this information, all payers must return benefits details as long as they can find a unique match for the member within their system. Visit [patient information](/healthcare/send-eligibility-checks#patient-information) to learn more.
  • Try including the `provider.tin`, typically their EIN or SSN.
| | `33` | Input Errors | The request doesn't meet the payer's requirements, which usually means it doesn't contain enough information to identify the patient. We recommend providing `subscriber.memberId`, `subscriber.dateOfBirth`, `subscriber.name.person.firstName`, and `subscriber.name.person.lastName`. Given this information, all payers must return benefits details as long as they can find a unique match for the member within their system. Visit [patient information](/healthcare/send-eligibility-checks#patient-information) to learn more. | | `35` | Out of Network | The subscriber isn't in the provider's network.
  • Verify that the `provider.npi` is valid.
  • If yes, contact the payer for clarification.
| | `42` | Unable to Respond at Current Time |
  • **Follow-up action `C`, `N`, or `S`**: There is a problem with your request. Contact Stedi Support.
  • **Any other follow-up action**: The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues.
| | `43` | Invalid/Missing Provider Identification | The problem is either:
  • The `provider.npi` isn't registered correctly with the payer.
  • The payer requires an agreement to begin processing eligibility checks for this provider.
Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether this payer requires transaction enrollment for eligibility checks.
  • If yes, you must submit a [transaction enrollment request](/healthcare/transaction-enrollment) for the provider.
  • If not, the payer may still require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment). Contact Stedi support to determine next steps.
| | `45` | Invalid/Missing Provider Specialty | The `provider.npi` isn't registered with the payer under the correct specialty. The provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. | | `47` | Invalid/Missing Provider State | The `provider.address` either doesn't match the address registered with the payer, or it doesn't match the provider's address in the NPPES system.
  • Ensure the information in `provider.address` is correct.
  • If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines.
| | `48` | Invalid/Missing Referring Provider Identification Number | The referring provider (specified in `subscriber.provider.code` and `subscriber.provider.reference`) either:
  • Isn't enrolled correctly with the payer. Contact Stedi support to resolve.
  • Isn't registered with the payer's health plans. The provider must contact the payer directly to complete the registration process. Contact Stedi support with questions.
| | `49` | Provider is Not Primary Care Physician | The payer doesn't list the provider as a primary care physician but requires them to be one. The provider or the patient must contact the payer to update their records. | | `51` | Provider Not on File | The provider isn't registered with the payer.
  • Ensure the `provider.npi` is correct.
  • If so, the provider must contact the payer directly to complete the registration process. This can include [credentialing and/or enrollment](/healthcare/credentialing-and-enrollment). Contact Stedi support with questions.
| | `52` | Service Dates Not Within Provider Plan Enrollment | The provider wasn't registered with the patient's health plan on the date of service listed in the eligibility check.
  • Verify that the `provider.npi` and `encounter.dates.service` are correct.
  • If so, the provider must contact the payer directly to resolve this issue.
| | `53` | Inquired Benefit Inconsistent with Provider Type Enrollment | The provider isn't registered with the payer to perform the requested benefit type. Some payers only return benefits that match the provider's taxonomy code.
  • Verify that the `provider.npi` is correct.
  • Verify that the `encounter.services[].value` and `encounter.services[].system` of each requested service are correct.
  • Check the provider taxonomy you sent in `provider.provider.reference`. It should match what's recorded in the payer's system.
  • If the issue persists, the provider must contact the payer directly to resolve.
| | `54` | Inappropriate Product/Service ID Qualifier | You provided an invalid `encounter.services[].system`. Update the request and resubmit. | | `55` | Inappropriate Product/Service ID | You provided an invalid `encounter.services[].value`. Update the request and resubmit. | | `56` | Inappropriate Date | The service dates in `encounter.dates.service` are incorrect or are formatted incorrectly.
  • Dates must be in YYYY-MM-DD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `57` | Invalid/Missing Date(s) of Service | The service dates in `encounter.dates.service` are incorrect or are formatted incorrectly.
  • Dates must be in YYYY-MM-DD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `58` | Invalid/Missing Date-of-Birth | The payer needs the subscriber's date of birth for identification.
  • Include `subscriber.dateOfBirth` in the request.
  • The date should be in YYYY-MM-DD format.
| | `60` | Date of Birth Follows Date(s) of Service | The date(s) of service you provided are earlier than the subscriber's date of birth.
  • Check `encounter.dates.service`.
  • Check the `subscriber.dateOfBirth`.
  • If this eligibility check is for a newborn, resubmit it with the mother's information instead.
| | `61` | Date of Death Precedes Date(s) of Service | The date(s) of service you provided are after the patient's date of death.
  • Check `encounter.dates.service`.
  • Note that if you don't provide a service date in the request, the payer defaults to using the current date in their timezone.
| | `62` | Date of Service Not Within Allowable Inquiry Period | The payer doesn't support the date(s) of service you provided.
  • Check `encounter.dates.service`.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `63` | Date of Service in Future | Some payers don't support future date(s) of service.
  • Check `encounter.dates.service`.
  • Check the payer's specific requirements.
| | `69` | Inconsistent with Patient's Age | The diagnosis codes provided don't match the patient's age.
  • Check the `subscriber.dateOfBirth`.
  • Check any diagnosis codes you sent.
| | `70` | Inconsistent with Patient's Gender | The procedure codes provided are inconsistent with the patient's gender.
  • Check `subscriber.gender`.
  • Check the procedure codes in `encounter.services[].value`.
| | `71` | Patient Birth Date Does Not Match That for the Patient on the Database | The subscriber's birth date doesn't match what's in the payer's database.
  • Check that the `subscriber.dateOfBirth` is correct.
  • If so, contact the payer to resolve this issue.
| | `72` | Invalid/Missing Subscriber/Insured ID | The subscriber's member ID is either missing or invalid.
  • Check the `subscriber.memberId`.
  • Ensure the member ID doesn't include the [Card Issuer Identifier](/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).
  • If you can't locate the correct member ID, try running an [insurance discovery check](/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.
| | `73` | Invalid/Missing Subscriber/Insured Name | The payer doesn't recognize the subscriber's name.
  • Ensure that the `subscriber.name.person.firstName` and `subscriber.name.person.lastName` are valid and spelled correctly.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for [entering patient names](/healthcare/send-eligibility-checks#patient-names).
| | `74` | Invalid/Missing Subscriber/Insured Gender Code | The payer requires the subscriber's gender code. Ensure `subscriber.gender` is set to a valid value that matches the payer's records. | | `75` | Subscriber/Insured Not Found | The payer couldn't locate the subscriber in their database.
  • We recommend providing `subscriber.memberId`, `subscriber.dateOfBirth`, `subscriber.name.person.firstName`, and `subscriber.name.person.lastName`. Given this information, all payers must return benefits details as long as they can find a unique match for the member within their system.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for [entering patient names](/healthcare/send-eligibility-checks#patient-names).
  • Sometimes patients provide outdated insurance information for the wrong payer. If the issue persists, try running an [insurance discovery check](/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.
| | `76` | Duplicate Subscriber/Insured ID Number | The payer found another member with the same member ID in their database. Ensure the `subscriber.memberId` is correct. | | `78` | Subscriber/Insured Not in Group/Plan identified | The subscriber isn't in the specified health plan.
  • Verify that the `subscriber.memberId` and `subscriber.additionalInformation.groupNumber` are correct.
  • If so, contact the payer directly to resolve this issue.
| | `98` | Experimental Service or Procedure | Contact the payer for guidance. | | `AA` | Authorization Number Not Found | The prior authorization number the payer has on file doesn't match the one you sent. Verify that the `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` is correct. | | `AE` | Requires Primary Care Physician Authorization | The payer requires a prior authorization number. Add the `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` to your request and resubmit. | | `AF` | Invalid/Missing Diagnosis Code(s) | The payer requires one or more diagnosis codes, or the diagnosis codes you provided are invalid. Check the patient's diagnosis codes. | | `AG` | Invalid/Missing Procedure Code(s) | The payer requires a procedure code or the procedure code you provided is invalid. Ensure `encounter.services[].system` and `encounter.services[].value` are set to valid values. | | `AO` | Additional Patient Condition Information Required | Contact the payer for guidance. | | `CI` | Certification Information Does Not Match Patient | The prior authorization number the payer has on file doesn't match the one you sent. Verify that the `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` is correct. | | `E8` | Requires Medical Review | Contact the payer for guidance. | | `IA` | Invalid Authorization Number Format | The `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` wasn't formatted correctly. | | `MA` | Missing Authorization Number | You must include a previously issued referral or authorization number in your request. Set `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` and resubmit. | {/* prettier-ignore-end */}
{/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | ----------- | ------------------------------- | | `15` | Required application data missing |
  • The payer likely needs more information about the subscriber to complete the eligibility check. We recommend providing the subscriber's `memberId`, `dateOfBirth`, `firstName`, and `lastName`. Given this information, all payers must return benefits details as long as they can find a unique match for the member within their system. Visit [patient information](/healthcare/send-eligibility-checks#patient-information) to learn more.
  • Try including the `provider.taxId`, typically their EIN or SSN.
| | `33` | Input Errors | The request doesn't meet the payer's requirements, which usually means it doesn't contain enough information to identify the patient. We recommend providing the subscriber's `memberId`, `dateOfBirth`, `firstName`, and `lastName`. Given this information, all payers must return benefits details as long as they can find a unique match for the member within their system. Visit [patient information](/healthcare/send-eligibility-checks#patient-information) to learn more. | | `35` | Out of Network | The subscriber isn't in the provider's network.
  • Verify that the `provider.npi` is valid.
  • If yes, contact the payer for clarification.
| | `42` | Unable to Respond at Current Time |
  • **Follow-up action `C`, `N`, or `S`**: There is a problem with your request. Contact Stedi Support.
  • **Any other follow-up action**: The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues.
| | `43` | Invalid/Missing Provider Identification | The problem is either:
  • The `provider.npi` isn't registered correctly with the payer.
  • The payer requires an agreement to begin processing eligibility checks for this provider.
Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether this payer requires transaction enrollment for eligibility checks.
  • If yes, you must submit a [transaction enrollment request](/healthcare/transaction-enrollment) for the provider.
  • If not, the payer may still require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment). Contact Stedi support to determine next steps.
| | `45` | Invalid/Missing Provider Specialty | The `provider.npi` isn't registered with the payer under the correct specialty. The provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. | | `47` | Invalid/Missing Provider State | The `provider.address` either doesn't match the address registered with the payer, or it doesn't match the provider's address in the NPPES system.
  • Ensure the information in `provider.address` is correct.
  • If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines.
| | `48` | Invalid/Missing Referring Provider Identification Number | The referring provider (specified in `subscriber.providerIdentifier`) either:
  • Isn't enrolled correctly with the payer. Contact Stedi support to resolve.
  • Isn't registered with the payer's health plans. The provider must contact the payer directly to complete the registration process. Contact Stedi support with questions.
| | `49` | Provider is Not Primary Care Physician | The payer doesn't list the provider as a primary care physician but requires them to be one. The provider or the patient must contact the payer to update their records. | | `51` | Provider Not on File | The provider isn't registered with the payer.
  • Ensure the `provider.npi` is correct.
  • If so, the provider must contact the payer directly to complete the registration process. This can include [credentialing and/or enrollment](/healthcare/credentialing-and-enrollment). Contact Stedi support with questions.
| | `52` | Service Dates Not Within Provider Plan Enrollment | The provider wasn't registered with the patient's health plan on the date of service listed in the eligibility check.
  • Verify that the `provider.npi` and the service dates in the `encounter` object are correct.
  • If so, the provider must contact the payer directly to resolve this issue.
| | `53` | Inquired Benefit Inconsistent with Provider Type Enrollment | The provider isn't registered with the payer to perform the requested benefit type. Some payers only return benefits that match the provider's taxonomy code.
  • Verify that the `provider.npi` is correct.
  • Verify that the `serviceTypeCodes` or the `procedureCode` and `productOrServiceIDQualifier` in the `encounter` object are correct.
  • Check the provider taxonomy you sent in `provider.referenceIdentification`. It should match what's recorded in the payer's system.
  • If the issue persists, the provider must contact the payer directly to resolve.
| | `54` | Inappropriate Product/Service ID Qualifier | You provided an invalid `encounter.productOrServiceIDQualifier`. Update the request and resubmit. | | `55` | Inappropriate Product/Service ID | You provided an invalid `encounter.procedureCode`. Update the request and resubmit. | | `56` | Inappropriate Date | The service dates in the `encounter` object are incorrect or are formatted incorrectly.
  • Dates must be in YYYYMMDD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `57` | Invalid/Missing Date(s) of Service | The service dates in the `encounter` object are missing, incorrect, or formatted incorrectly.
  • Dates must be in YYYYMMDD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `58` | Invalid/Missing Date-of-Birth | The payer needs the subscriber's date of birth for identification.
  • Include `subscriber.dateOfBirth` in the request.
  • The date should be in YYYYMMDD format.
| | `60` | Date of Birth Follows Date(s) of Service | The date(s) of service you provided are earlier than the subscriber's date of birth.
  • Check the service dates in the `encounter` object.
  • Check the `subscriber.dateOfBirth`.
  • If this eligibility check is for a newborn, resubmit it with the mother's information instead.
| | `61` | Date of Death Precedes Date(s) of Service | The date(s) of service you provided are after the patient's date of death.
  • Check the service dates in the `encounter` object.
  • Note that if you don't provide a service date in the request, the payer defaults to using the current date in their timezone.
| | `62` | Date of Service Not Within Allowable Inquiry Period | The payer doesn't support the date(s) of service you provided.
  • Check the service dates in the `encounter` object.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `63` | Date of Service in Future | Some payers don't support future date(s) of service.
  • Check the service dates in the `encounter` object.
  • Check the payer's specific requirements.
| | `69` | Inconsistent with Patient's Age | The diagnosis codes provided don't match the patient's age.
  • Check the `subscriber.dateOfBirth`.
  • Check any `subscriber.healthCareCodeInformation[].diagnosisCode` values.
| | `70` | Inconsistent with Patient's Gender | The procedure codes provided are inconsistent with the patient's gender.
  • Check `subscriber.gender`.
  • Check the values in `encounter.procedureCode` or `encounter.medicalProcedures[].procedureCode`.
| | `71` | Patient Birth Date Does Not Match That for the Patient on the Database | The subscriber's birth date doesn't match what's in the payer's database.
  • Check that the `subscriber.dateOfBirth` is correct.
  • If so, contact the payer to resolve this issue.
| | `72` | Invalid/Missing Subscriber/Insured ID | The subscriber's member ID is either missing or invalid.
  • Check the `subscriber.memberId`.
  • Ensure the member ID doesn't include the [Card Issuer Identifier](/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).
  • If you can't locate the correct member ID, try running an [insurance discovery check](/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.
| | `73` | Invalid/Missing Subscriber/Insured Name | The payer doesn't recognize the subscriber's name.
  • Verify that the `subscriber.firstName` and `subscriber.lastName` are valid and spelled correctly.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for [entering patient names](/healthcare/send-eligibility-checks#patient-names).
| | `74` | Invalid/Missing Subscriber/Insured Gender Code | The payer requires the subscriber's gender code. Ensure `subscriber.gender` is set to a valid value that matches the payer's records. | | `75` | Subscriber/Insured Not Found | The payer couldn't locate the subscriber in their database.
  • We recommend providing the subscriber's `memberId`, `dateOfBirth`, `firstName`, and `lastName`. Given this information, all payers must return benefits details as long as they can find a unique match for the member within their system.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for [entering patient names](/healthcare/send-eligibility-checks#patient-names).
  • Sometimes patients provide outdated insurance information for the wrong payer. If the issue persists, try running an [insurance discovery check](/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.
| | `76` | Duplicate Subscriber/Insured ID Number | The payer found another member with the same member ID in their database. Ensure the `subscriber.memberId` is correct. | | `78` | Subscriber/Insured Not in Group/Plan identified | The subscriber isn't in the specified health plan.
  • Verify that the `subscriber.memberId` and `subscriber.groupNumber` are correct.
  • If so, contact the payer directly to resolve this issue.
| | `98` | Experimental Service or Procedure | Contact the payer for guidance. | | `AA` | Authorization Number Not Found | The prior authorization number the payer has on file doesn't match the one you sent. Verify that the `encounter.priorAuthorizationOrReferralNumber` is correct. | | `AE` | Requires Primary Care Physician Authorization | The payer requires a prior authorization number. Add the `encounter.priorAuthorizationOrReferralNumber` to your request and resubmit. | | `AF` | Invalid/Missing Diagnosis Code(s) | The payer requires one or more diagnosis codes, or the diagnosis codes you provided are invalid. Ensure the information in the `subscriber.healthCareCodeInformation[]` array is correct. | | `AG` | Invalid/Missing Procedure Code(s) | The payer requires a procedure code or the procedure code you provided is invalid. Ensure `encounter.productOrServiceIDQualifier` and `encounter.procedureCode` are set to valid values. | | `AO` | Additional Patient Condition Information Required | Contact the payer for guidance. | | `CI` | Certification Information Does Not Match Patient | The prior authorization number the payer has on file doesn't match the one you sent. Verify that the `encounter.priorAuthorizationOrReferralNumber` is correct. | | `E8` | Requires Medical Review | Contact the payer for guidance. | | `IA` | Invalid Authorization Number Format | The `encounter.priorAuthorizationOrReferralNumber` wasn't formatted correctly. | | `MA` | Missing Authorization Number | You must include a previously issued referral or authorization number in your request. Set the `encounter.referenceIdentificationQualifier` and `encounter.priorAuthorizationOrReferralNumber` properties and resubmit. | {/* prettier-ignore-end */}
{/* vale Stedi.Terms = YES */} {/* vale Stedi.Acronyms = YES */} {/* vale Stedi.UnapprovedWords = YES */} {/* vale Stedi.Should = YES */} {/* vale Stedi.PassiveVoice = YES */} #### Dependents [#dependents] You may receive the following types of errors at the dependent level. {/* The AAA tables mirror the possibleResolutions text each endpoint returns. */} {/* vale Stedi.PassiveVoice = NO */} {/* vale Stedi.Should = NO */} {/* vale Stedi.UnapprovedWords = NO */} {/* vale Stedi.Acronyms = NO */} {/* vale Stedi.Terms = NO */} {/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | ----------- | ------------------------------- | | `15` | Required application data missing | The payer needs more information about the dependent to complete the eligibility check. We recommend providing `dependent.name.person.firstName`, `dependent.name.person.lastName`, and `dependent.dateOfBirth`, when possible. Many payers return errors when the dependent's date of birth is missing.
  • Some payers don't support dependent eligibility checks. In these cases, put the patient's details in the `subscriber` object with their own `subscriber.memberId`, and leave out the `dependent` object.
  • Try including the `provider.tin`, typically their EIN or SSN.
| | `33` | Input Errors | The request doesn't meet the payer's requirements, which usually means it doesn't contain enough information to identify the patient.
  • We recommend providing `subscriber.memberId`, `subscriber.dateOfBirth`, `subscriber.name.person.firstName`, and `subscriber.name.person.lastName`.
  • We recommend providing `dependent.name.person.firstName`, `dependent.name.person.lastName`, and `dependent.dateOfBirth`.
| | `35` | Out of Network | The dependent isn't in the provider's network.
  • Verify that the `provider.npi` is valid.
  • If yes, contact the payer for clarification.
| | `42` | Unable to Respond at Current Time |
  • **Follow-up action `C`, `N`, or `S`**: There is a problem with your request. Contact Stedi Support.
  • **Any other follow-up action**: The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues.
| | `43` | Invalid/Missing Provider Identification | The problem is either:
  • The `provider.npi` isn't registered correctly with the payer.
  • The payer requires an agreement to begin processing eligibility checks for this provider.
Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether this payer requires transaction enrollment for eligibility checks.
  • If yes, you must submit a [transaction enrollment request](/healthcare/transaction-enrollment) for the provider.
  • If not, the payer may still require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment). Contact Stedi support to determine next steps.
| | `45` | Invalid/Missing Provider Specialty | The `provider.npi` isn't registered with the payer under the correct specialty. The provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. | | `47` | Invalid/Missing Provider State | The `provider.address` either doesn't match the address registered with the payer, or it doesn't match the provider's address in the NPPES system.
  • Ensure the information in `provider.address` is correct.
  • If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines.
| | `48` | Invalid/Missing Referring Provider Identification Number | The referring provider (specified in `dependent.provider.code` and `dependent.provider.reference`) either:
  • Isn't enrolled correctly with the payer. Contact Stedi support to resolve.
  • Isn't registered with the payer's health plans. The provider must contact the payer directly to complete the registration process. Contact Stedi support with questions.
| | `49` | Provider is Not Primary Care Physician | The payer doesn't list the provider as a primary care physician, but requires them to be one. The provider or the patient must contact the payer to update their records. | | `51` | Provider Not on File | The provider isn't registered with the payer.
  • Ensure the `provider.npi` is correct.
  • If so, the provider must contact the payer directly to complete the registration process. This can include [credentialing and/or enrollment](/healthcare/credentialing-and-enrollment). Contact Stedi support with questions.
| | `52` | Service Dates Not Within Provider Plan Enrollment | The provider wasn't registered with the patient's health plan on the date of service listed in the eligibility check.
  • Verify that the `provider.npi` and `encounter.dates.service` are correct.
  • If so, the provider must contact the payer directly to resolve this issue.
| | `53` | Inquired Benefit Inconsistent with Provider Type Enrollment | The provider isn't registered with the payer to perform the requested benefit type. Some payers only return benefits that match the provider's taxonomy code.
  • Verify that the `provider.npi` is correct.
  • Verify that the `encounter.services[].value` and `encounter.services[].system` of each requested service are correct.
  • Check the provider taxonomy you sent in `provider.provider.reference`. It should match what's recorded in the payer's system.
  • If the issue persists, the provider must contact the payer directly to resolve.
| | `54` | Inappropriate Product/Service ID Qualifier | You provided an invalid `encounter.services[].system`. Update the request and resubmit. | | `55` | Inappropriate Product/Service ID | You provided an invalid `encounter.services[].value`. Update the request and resubmit. | | `56` | Inappropriate Date | The service dates in `encounter.dates.service` are incorrect or are formatted incorrectly.
  • Dates must be in YYYY-MM-DD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `57` | Invalid/Missing Date(s) of Service | The service dates in `encounter.dates.service` are incorrect or are formatted incorrectly.
  • Dates must be in YYYY-MM-DD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `58` | Invalid/Missing Date-of-Birth | The payer needs the dependent's date of birth for identification.
  • Include `dependent.dateOfBirth` in the request.
  • The date should be in YYYY-MM-DD format.
| | `60` | Date of Birth Follows Date(s) of Service | The date(s) of service you provided are earlier than the dependent's date of birth.
  • Check `encounter.dates.service`.
  • Check the `dependent.dateOfBirth`.
  • If this eligibility check is for a newborn, resubmit it with the mother's information instead.
| | `61` | Date of Death Precedes Date(s) of Service | The date(s) of service you provided are after the dependent's date of death.
  • Check `encounter.dates.service`.
  • Note that if you don't provide a service date in the request, the payer defaults to using the current date in their timezone.
| | `62` | Date of Service Not Within Allowable Inquiry Period | The payer doesn't support the date(s) of service you provided.
  • Check `encounter.dates.service`.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `63` | Date of Service in Future | Some payers don't support future date(s) of service.
  • Check `encounter.dates.service`.
  • Check the payer's specific requirements.
| | `64` | Invalid/Missing Patient ID | The payer requires an additional identifier in the `dependent.additionalInformation` object.
  • The required identifier is payer-specific. Check the payer's requirements.
  • Don't include the `dependent.additionalInformation.mbi` unless it's different from the member ID.
| | `65` | Invalid/Missing Patient Name | The payer doesn't recognize the dependent's name.
  • Ensure that the `dependent.name.person.firstName` and `dependent.name.person.lastName` are valid and spelled correctly.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for [entering patient names](/healthcare/send-eligibility-checks#patient-names).
| | `66` | Invalid/Missing Patient Gender Code | The payer requires the dependent's gender code. Ensure `dependent.gender` is set to a valid value that matches the payer's records. | | `67` | Patient Not Found | The payer couldn't locate the dependent in their database.
  • We recommend providing `dependent.name.person.firstName`, `dependent.name.person.lastName`, and `dependent.dateOfBirth`.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for [entering patient names](/healthcare/send-eligibility-checks#patient-names).
  • Sometimes patients provide outdated insurance information for the wrong payer. If the issue persists, try running an [insurance discovery check](/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.
| | `68` | Duplicate Patient ID Number | The payer found another member with the same member ID in their database. Ensure `subscriber.memberId` is correct, and `dependent.additionalInformation.memberId` if you sent one. | | `69` | Inconsistent with Patient's Age | The diagnosis codes provided don't match the patient's age.
  • Check the `dependent.dateOfBirth`.
  • Check any diagnosis codes you sent.
| | `70` | Inconsistent with Patient's Gender | The procedure codes provided are inconsistent with the patient's gender.
  • Check `dependent.gender`.
  • Check the procedure codes in `encounter.services[].value`.
| | `71` | Patient DOB Does Not Match That for the Patient on the Database | The dependent's birth date doesn't match what's in the payer's database.
  • Check that the `dependent.dateOfBirth` is correct.
  • If so, contact the payer to resolve this issue.
| | `77` | Subscriber Found, Patient Not Found | The payer identified the subscriber in their database, but not the dependent.
  • We recommend providing `dependent.name.person.firstName`, `dependent.name.person.lastName`, and `dependent.dateOfBirth`.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for [entering patient names](/healthcare/send-eligibility-checks#patient-names).
  • If the dependent has a unique member ID, you must submit their information in the `subscriber` object instead, with that ID in `subscriber.memberId`. Sending it in `dependent.additionalInformation.memberId` doesn't make the payer treat them as the subscriber.
| | `98` | Experimental Service or Procedure | Contact the payer for guidance. | | `AA` | Authorization Number Not Found | The prior authorization number the payer has on file doesn't match the one you sent. Verify that the `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` is correct. | | `AE` | Requires Primary Care Physician Authorization | The payer requires a prior authorization number. Add the `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` to your request and resubmit. | | `AF` | Invalid/Missing Diagnosis Code(s) | The payer requires diagnosis codes, or the diagnosis codes you provided were invalid. Check the patient's diagnosis codes. | | `AG` | Invalid/Missing Procedure Code(s) | The payer requires a procedure code or the procedure code you provided is invalid. Ensure `encounter.services[].system` and `encounter.services[].value` are set to valid values. | | `AO` | Additional Patient Condition Information Required | Contact the payer for guidance. | | `CI` | Certification Information Does Not Match Patient | The prior authorization number the payer has on file doesn't match the one you sent. Verify that the `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` is correct. | | `E8` | Requires Medical Review | Contact the payer for guidance. | | `IA` | Invalid Authorization Number Format | The `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` wasn't formatted correctly. | | `MA` | Missing Authorization Number | You must include a previously issued referral or authorization number in your request. Set `encounter.additionalInformation.priorAuthNumber` or `encounter.additionalInformation.referralNumber` and resubmit. | {/* prettier-ignore-end */}
{/* prettier-ignore-start */} | Code | Description | Possible causes and resolutions | | ---- | ----------- | ----------------| | `15` | Required application data missing |
  • The payer needs more information about the dependent to complete the eligibility check. We recommend providing the dependent's `firstName`, `lastName`, and `dateOfBirth`, when possible. Many payers return errors when the dependent's date of birth is missing.
  • Some payers don't support dependent eligibility checks. In these cases, submit the dependent as the subscriber with their own member ID.
  • Try including the `provider.taxId`, typically their EIN or SSN.
| | `33` | Input Errors | The request doesn't meet the payer's requirements, which usually means it doesn't contain enough information to identify the patient.
  • We recommend providing the subscriber's `memberId`, `dateOfBirth`, `firstName`, and `lastName`.
  • We recommend providing the dependent's `firstName`, `lastName`, and `dateOfBirth`.
| | `35` | Out of Network | The dependent isn't in the provider's network.
  • Verify that the `provider.npi` is valid.
  • If yes, contact the payer for clarification.
| | `42` | Unable to Respond at Current Time |
  • **Follow-up action `C`, `N`, or `S`**: There is a problem with your request. Contact Stedi Support.
  • **Any other follow-up action**: The payer can't respond to your request. This is typically a temporary issue with the payer's system, such as downtime, but it can also be an extended outage. We recommend retrying immediately and continuing to retry for up to 2 minutes. Learn more about our [recommended retry strategy](/healthcare/eligibility-troubleshooting#payer-connectivity-issues) for payer connectivity issues.
| | `43` | Invalid/Missing Provider Identification | The problem is either:
  • The `provider.npi` isn't registered correctly with the payer.
  • The payer requires an agreement to begin processing eligibility checks for this provider.
Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether this payer requires transaction enrollment for eligibility checks.
  • If yes, you must submit a [transaction enrollment request](/healthcare/transaction-enrollment) for the provider.
  • If not, the payer may still require other [credentialing or enrollment processes](/healthcare/credentialing-and-enrollment). Contact Stedi support to determine next steps.
| | `45` | Invalid/Missing Provider Specialty | The `provider.npi` isn't registered with the payer under the correct specialty. The provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines. | | `47` | Invalid/Missing Provider State | The `provider.address` either doesn't match the address registered with the payer, or it doesn't match the provider's address in the NPPES system.
  • Ensure the information in `provider.address` is correct.
  • If so, the provider must contact the payer directly to resolve this issue due to PHI/HIPAA guidelines.
| | `48` | Invalid/Missing Referring Provider Identification Number | The referring provider (specified in `dependents[].providerIdentifier`) either:
  • Isn't enrolled correctly with the payer. Contact Stedi support to resolve.
  • Isn't registered with the payer's health plans. The provider must contact the payer directly to complete the registration process. Contact Stedi support with questions.
| | `49` | Provider is Not Primary Care Physician | The payer doesn't list the provider as a primary care physician, but requires them to be one. The provider or the patient must contact the payer to update their records. | | `51` | Provider Not on File | The provider isn't registered with the payer.
  • Ensure the `provider.npi` is correct.
  • If so, the provider must contact the payer directly to complete the registration process. This can include [credentialing and/or enrollment](/healthcare/credentialing-and-enrollment). Contact Stedi support with questions.
| | `52` | Service Dates Not Within Provider Plan Enrollment | The provider wasn't registered with the patient's health plan on the date of service listed in the eligibility check.
  • Verify that the `provider.npi` and the service dates in the `encounter` object are correct.
  • If so, the provider must contact the payer directly to resolve this issue.
| | `53` | Inquired Benefit Inconsistent with Provider Type Enrollment | The provider isn't registered with the payer to perform the requested benefit type. Some payers only return benefits that match the provider's taxonomy code.
  • Verify that the `provider.npi` is correct.
  • Verify that the `serviceTypeCodes` or `procedureCode` and `productOrServiceIDQualifier` in the `encounter` object are correct.
  • Check the provider taxonomy in `provider.referenceIdentification` to ensure it matches what's in the payer's system.
  • If the issue persists, the provider must contact the payer directly to resolve.
| | `54` | Inappropriate Product/Service ID Qualifier | You provided an invalid `encounter.productOrServiceIDQualifier`. Update the request and resubmit. | | `55` | Inappropriate Product/Service ID | You provided an invalid `encounter.procedureCode`. Update the request and resubmit. | | `56` | Inappropriate Date | The service dates in the `encounter` object are incorrect or are formatted incorrectly.
  • Dates must be in YYYYMMDD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `57` | Invalid/Missing Date(s) of Service | The service dates in the `encounter` object are missing, incorrect, or formatted incorrectly.
  • Dates must be in YYYYMMDD format.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `58` | Invalid/Missing Date-of-Birth | The payer needs the dependent's date of birth for identification.
  • Include `dependents[].dateOfBirth` in the request.
  • The date should be in YYYYMMDD format.
| | `60` | Date of Birth Follows Date(s) of Service | The date(s) of service you provided are earlier than the dependent's date of birth.
  • Check the service dates in the `encounter` object.
  • Check the `dependents[].dateOfBirth`.
  • If this eligibility check is for a newborn, resubmit it with the mother's information instead.
| | `61` | Date of Death Precedes Date(s) of Service | The date(s) of service you provided are after the dependent's date of death.
  • Check the service dates in the `encounter` object.
  • Note that if you don't provide a service date in the request, the payer defaults to using the current date in their timezone.
| | `62` | Date of Service Not Within Allowable Inquiry Period | The payer doesn't support the date(s) of service you provided.
  • Check the service dates in the `encounter` object.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers do support dates further in the future, especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `63` | Date of Service in Future | Some payers don't support future date(s) of service.
  • Check the service dates in the `encounter` object.
  • Check the payer's specific requirements.
| | `64` | Invalid/Missing Patient ID | The payer requires an additional identifier in the `dependents[].additionalIdentification` object.
  • The required identifier is payer-specific. Check the payer's requirements.
  • Don't include the `healthInsuranceClaimNumber` or `medicaidRecipientIdentificationNumber` unless they're different from the member ID.
| | `65` | Invalid/Missing Patient Name | The payer doesn't recognize the dependent's name.
  • Ensure that the `dependents[].firstName` and `dependents[].lastName` are valid and spelled correctly.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for entering [patient names](/healthcare/send-eligibility-checks#patient-names).
| | `66` | Invalid/Missing Patient Gender Code | The payer requires the dependent's gender code. Ensure `dependents[].gender` is set to a valid value that matches the payer's records. | | `67` | Patient Not Found | The payer couldn't locate the dependent in their database.
  • We recommend providing the dependent's `firstName`, `lastName`, and `dateOfBirth`.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for entering [patient names](/healthcare/send-eligibility-checks#patient-names).
  • Sometimes patients provide outdated insurance information for the wrong payer. If the issue persists, try running an [insurance discovery check](/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.
| | `68` | Duplicate Patient ID Number | The payer found another member with the same member ID in their database. Ensure the `subscriber.memberId` is correct. | | `69` | Inconsistent with Patient's Age | The diagnosis codes provided don't match the patient's age.
  • Check the `dependents[].dateOfBirth`.
  • Check any `dependents[].healthCareCodeInformation[].diagnosisCode` values.
| | `70` | Inconsistent with Patient's Gender | The procedure codes provided are inconsistent with the patient's gender.
  • Check `dependents[].gender`.
  • Check the values in `encounter.procedureCode` or `encounter.medicalProcedures[].procedureCode`.
| | `71` | Patient DOB Does Not Match That for the Patient on the Database | The dependent's birth date doesn't match what's in the payer's database.
  • Check that the `dependents[].dateOfBirth` is correct.
  • If so, contact the payer to resolve this issue.
| | `77` | Subscriber Found, Patient Not Found | The payer identified the subscriber in their database, but not the dependent.
  • We recommend providing the dependent's `firstName`, `lastName`, and `dateOfBirth`.
  • Enter the patient's name exactly as it appears on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. Review our other best practices for entering [patient names](/healthcare/send-eligibility-checks#patient-names).
  • If the dependent has a unique member ID, you must submit their information in the `subscriber` object instead.
| | `98` | Experimental Service or Procedure | Contact the payer for guidance. | | `AA` | Authorization Number Not Found | The payer didn't recognize the prior authorization number you provided. Ensure the `encounter.priorAuthorizationOrReferralNumber` is correct. | | `AE` | Requires Primary Care Physician Authorization | The payer requires a prior authorization number. Add the `encounter.priorAuthorizationOrReferralNumber` to your request and resubmit. | | `AF` | Invalid/Missing Diagnosis Code(s) | The payer requires diagnosis codes, or the diagnosis codes you provided were invalid. Ensure the information in the `dependents[].healthCareCodeInformation[]` array is correct. | | `AG` | Invalid/Missing Procedure Code(s) | The payer requires a procedure code or the procedure code you provided is invalid. Ensure `encounter.productOrServiceIDQualifier` and `encounter.procedureCode` are set to valid values. | | `AO` | Additional Patient Condition Information Required | Contact the payer for guidance. | | `CI` | Certification Information Does Not Match Patient | The prior authorization or referral number the payer has on file for the patient doesn't match the one you sent. Verify that the `encounter.priorAuthorizationOrReferralNumber` is correct. | | `E8` | Requires Medical Review | Contact the payer for guidance. | | `IA` | Invalid Authorization Number Format | The `encounter.priorAuthorizationOrReferralNumber` wasn't formatted correctly. | | `MA` | Missing Authorization Number | You must include a previously issued referral or authorization number in your request. Set the `encounter.referenceIdentificationQualifier` and `encounter.priorAuthorizationOrReferralNumber` properties and resubmit. | {/* prettier-ignore-end */}
{/* vale Stedi.Terms = YES */} {/* vale Stedi.Acronyms = YES */} {/* vale Stedi.UnapprovedWords = YES */} {/* vale Stedi.Should = YES */} {/* vale Stedi.PassiveVoice = YES */} ### Card Issuer Identifier (80840) [#card-issuer-identifier-80840] All health plans use (80840) as the first five digits of the Card Issuer Identifier. This is a placeholder value used for standards compliance only, and you shouldn't pass it in an electronic eligibility check. However, many providers and OCR systems accidentally pass (80840) in other eligibility check fields. For example, they may try to pass this value as a subscriber or dependent ID, causing an [AAA rejection](#payer-aaa-errors) from the payer. To prevent these types of mistakes, Stedi removes a leading `(80840)` from member IDs and supplemental identifiers, along with a colon directly after it. If fewer than two characters remain in the member ID, Stedi removes the member ID from the request. Stedi also removes any subscriber or dependent supplemental identifier that contains a character other than a letter, number, or hyphen. Stedi applies these changes to the following fields: {/* prettier-ignore-start */} | JSON | X12 EDI | | ---- | ------- | | `subscriber.memberId` | `Loop 2100C NM109` (Subscriber Primary Identifier) | | Any property in `subscriber.additionalInformation` | `Loop 2100C REF02` (Subscriber Supplemental Identifier) | | Any property in `dependent.additionalInformation` | `Loop 2100D REF02` (Dependent Supplemental Identifier) | {/* prettier-ignore-end */} {/* prettier-ignore-start */} | JSON | X12 EDI | | ---- | ------- | | `subscriber.memberId` | `Loop 2100C NM109` (Subscriber Primary Identifier) | | Any property in `subscriber.additionalIdentification` | `Loop 2100C REF02` (Subscriber Supplemental Identifier) | | Any property in `dependents[].additionalIdentification` | `Loop 2100D REF02` (Dependent Supplemental Identifier) | {/* prettier-ignore-end */} If the payer's eligibility response contains an AAA error, Stedi returns the following warning in the `warnings` array: ```json { "code": "response::271::placeholder_prefix", "description": "One or more subscriber/dependent identifiers contain the string \"(80840)\", which is a known placeholder prefix for a field that should not be provided. We have omitted that value in the request, and the request failed. Please locate the correct value for the identifier(s) and resubmit." } ``` To correct this error, read the documentation for the corresponding field, locate the correct value, and resubmit the eligibility check. ### SOAP requests [#soap-requests] Our [Real-Time Eligibility Check SOAP](/healthcare/api-reference/post-healthcare-eligibility-soap) endpoint respects the error handling rules defined in the [CAQH CORE vC2.2.0 Rule](https://www.caqh.org/core/connectivity). At a high level, you can experience errors in the following categories: - [Authentication errors](#authentication-errors): Either your API key, your Stedi account ID, or both are invalid. - [SOAP faults](#soap-faults): Issues with the request `Envelope` or `Header` elements, such as malformed XML. - [CORE-compliant errors](#core-compliant-errors): The request don't conform to CAQH CORE rules for eligibility checks. - [X12 EDI validation errors](#x12-edi-validation-errors): The X12 EDI transaction doesn't match the required format. - [Too many requests errors](#too-many-requests): You've exceeded your concurrency limit. - [Payer `AAA` errors](#payer-aaa-errors): Errors from the payer indicating issues with processing your request. #### Authentication errors [#authentication-errors] If the `wsse:Username` or `wsse:Password` values are incorrect within the `Header` element: - Stedi returns an HTTP `401` status code. - The response includes an `ErrorCode` element set to `UnAuthorized`. The following example shows an authentication error response: ```xml CoreEnvelopeError RealTime 01987b7e-56cc-7871-8520-a22721948fb4 2025-08-06T22:23:50Z 2.2.0 UnAuthorized Invalid username and/or password. ``` #### SOAP faults [#soap-faults] SOAP faults indicate issues with the request `Envelope` or `Header` elements, such as malformed XML or missing required elements. When these errors occur: - Stedi returns an HTTP `400` status code. - The response includes a `Fault` element that contains details about the error. The `Fault` element always contains a `Code` and `Reason` element. The `Code` element indicates the source of the error and the `Reason` element provides a description. The following example shows a SOAP fault response: ```xml soapenv:Sender Unable to parse payload as CORE SOAP request ``` Visit the [SOAP Fault documentation](https://www.w3.org/TR/soap12-part1/#soapfault) for more details and a complete list of possible error codes. #### CORE-compliant errors [#core-compliant-errors] These errors typically indicate issues with the `COREEnvelopeRealTimeRequest` element that contains the request body. However, they can sometimes indicate specific issues with the SOAP `Envelope` or `Header` elements, such as an incorrect SOAP version or invalid credentials. When these errors occur: - Stedi returns an HTTP `400` status code. - The `COREEnvelopeRealTimeResponse` element contains an `ErrorCode` and `ErrorMessage` with a description. - The `Payload` element is empty because Stedi didn't process the eligibility check. The following example shows a CORE-compliant error response: ```xml CoreEnvelopeError RealTime 01987b70-2b7e-7b40-9875-10d3139dcf2a 2025-08-06T22:23:50Z TestStedi Stedi 2.2.0 PayloadIDIllegal Illegal value provided for PayloadID. Must be a valid UUID ``` The following table lists the possible values for `ErrorCode` and and their causes: {/* prettier-ignore-start */} | Error Code | Possible Causes | |---------------------------|--------------------------------------------------------------------------------------------------------| | `CORERuleVersionIllegal` | The `CORERuleVersion` element is not set to `2.2.0`. | | `CORERuleVersionRequired` | The `CORERuleVersion` element is missing from the request. Set this to `2.2.0`. | | `PayloadIDIllegal` | The `PayloadID` element is not a valid UUID. | | `PayloadIDRequired` | The `PayloadID` element is missing from the request. This must be a valid UUID. | | `PayloadIllegal` | The `Payload` element is empty or doesn't contain a valid X12 EDI 270 transaction. | | `PayloadRequired` | The `Payload` element is missing from the request. This must be a valid X12 EDI 270 transaction. | | `PayloadTypeIllegal` | The `PayloadType` element is invalid. Set this to `X12_270_Request_005010X279A1`. | | `PayloadTypeRequired` | The `PayloadType` element is missing from the request. Set this to `X12_270_Request_005010X279A1`. | | `ProcessingModeIllegal` | The `ProcessingMode` element is not set to `RealTime`. | | `ProcessingModeRequired` | The `ProcessingMode` element is missing from the request. Set this to `RealTime` for real-time eligibility checks. | | `ReceiverIDIllegal` | The `ReceiverID` exceeds the maximum length of 50 characters. | | `ReceiverIDRequired` | The `ReceiverID` element is missing from the request. Visit the [Request](/healthcare/api-reference/post-healthcare-eligibility-soap#request) reference documentation for guidance on which identifier to use. | | `SenderIDIllegal` | The `SenderID` exceeds the maximum length of 50 characters. | | `SenderIDRequired` | The `SenderID` element is missing from the request. Visit the [Request](/healthcare/api-reference/post-healthcare-eligibility-soap#request) reference documentation for guidance on which identifier to use. | | `TimeStampIllegal` | The `TimeStamp` element is not in the correct format. It must be in ISO 8601 format, such as `2024-07-28T12:00:00Z`. | | `TimeStampRequired` | The `TimeStamp` element is missing from the request. | | `UnAuthorized` | The request is unauthorized. This can happen if the `wsse:UsernameToken` is missing or invalid, or if the API key is incorrect. | | `VersionMismatch` | The SOAP version in the request does not match the expected version. | {/* prettier-ignore-end */} #### X12 EDI validation errors [#x12-edi-validation-errors] Validation errors occur when the X12 EDI transaction doesn't conform to the expected [270 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-inquiry-x279a1/01GRYB6GTDJ4MEP5Z16CGMQWT6) or contains invalid data. When there are validation errors, Stedi returns an HTTP `400` status code. There are two possible error cases: - **Invalid EDI envelope:** There are issues with the `ISA` or `GS` header. The `ErrorCode` element is set to `PayloadIllegal`, and the `Payload` element is empty because Stedi couldn't parse the request. ```xml CoreEnvelopeError RealTime 01987c0b-c8b3-71c1-bd6f-8e26725c7110 2025-08-06T22:23:50Z RECEIVER-ID SENDER-ID 2.2.0 PayloadIllegal Error while getting metadata for an X12 file: Error reading EDI: Invalid ISA: ISA-11 must be 'U' for interchange control versions earlier than 00402 ``` - **Invalid EDI transaction:** Stedi successfully parsed the EDI envelope, but there are validation issues with the rest of the transaction. The `ErrorCode` element is set to `Success`, and the `Payload` element contains a 999 Implementation Acknowledgment describing the errors. This 999 is usually from Stedi, but it can also be from the payer. ```xml X12_999_Response_005010X231A1 RealTime 01987c11-ae2e-7f63-801d-cb3529f45952 2025-08-06T22:23:50Z RECEIVER-ID SENDER-ID 2.2.0 Success ``` #### Too many requests [#too-many-requests] If you exceed your [concurrency limit](/healthcare/api-reference#concurrency-limits) for the SOAP endpoint: - Stedi returns an HTTP `429` status code. - The X12 EDI transaction inside the `Payload` element contains an `AAA` error with code `42`. Stedi will continue rejecting additional requests with a `429` status code until one of your previous requests is completed. The following example shows a too many requests response: ```xml X12_271_Response_005010X279A1 RealTime 019afed8-aa83-7fe2-a1bf-18dd5942a772 2025-12-08T16:43:23Z STEDI 686460348755 2.2.0 Success ``` # Eligibility views Source: https://www.stedi.com/docs/healthcare/eligibility-views Track eligibility check attempts and retries in the Stedi portal's checks view with links to specific checks. You can track eligibility checks in the Stedi portal. Click **Checks** in the side navigation to go to the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). The checks view shows individual eligibility check attempts. Every attempt appears as a separate row. If you retry a check, the retry appears as its own row. ## Checks view [#checks-view] The [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks) shows individual eligibility check attempts. For example, if you submit a check for patient Jane Doe that initially fails and then retry to get successful results, the initial attempt and the retry appear as separate checks in the list. You can use the checks view to: - Check the status of individual eligibility check attempts. For example, you may want to reference the results of an eligibility check that you ran earlier in the day. - Identify patterns in check failures. For example, if you filter by a specific payer and find that checks for all patients within the last hour have failed, the payer may have an outage. The checks view sorts eligibility checks by **Processed date**, with the most recent checks appearing first. ![Eligibility checks view](/images/providers/eligibility-checks-view.png) The **Patient** column shows the patient's name, last name first. When the check includes a dependent, the dependent is the patient, so the column shows the dependent's name. Hold the pointer over a dependent's name to show both the dependent's and the subscriber's names. The **Member ID** column shows the subscriber's member ID. ### Filter [#filter] You can filter eligibility checks by the following criteria: {/* prettier-ignore-start */} | Filter | Description | | ------ | ----------- | | **Processed date** | A date range for when Stedi processed the eligibility check. | | **Results** | By the check result status (Active, Inactive, Investigate, or Failed). | | **Member ID** | By the subscriber's member ID. | | **Payer** | By a Payer ID or alias in the [Payer Network](https://www.stedi.com/healthcare/network) or a payer's business name (such as Cigna). | | **Provider NPI** | By the National Provider Identifier (NPI) of the requesting provider. | | **Error code** | By the [AAA code](/healthcare/eligibility-troubleshooting#payer-aaa-errors) returned by the payer. For example, `42` errors indicate a connectivity issue. | | **Search ID** | By the ID of the eligibility search containing the check. | {/* prettier-ignore-end */} ### Check result [#check-result] Each eligibility check can have one of the following results: {/* prettier-ignore-start */} | Result | Description | | --------- | ----------- | | **Active** | The payer's response contains an active eligibility and benefit type. Visit [Eligibility and benefit type codes](/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for a complete list of valid code values. | | **Inactive** | The payer's response doesn't contain an active eligibility and benefit type. | | **Investigate** | The payer returned an unexpected eligibility or benefit type code. Review the response and contact the payer if you have questions. | | **Failed** | The payer returned an error code in the response. Review the error code and retry the eligibility check. | {/* prettier-ignore-end */} ### Check details [#check-details] Click any check to view its details, including the check overview, benefits information (if present), and raw request and response data. The page title and breadcrumb show the patient's name. When the check includes a dependent, the overview title also shows **Dependent of** and the subscriber's name. If the check doesn't include the patient's name, Stedi shows **Unknown patient**. ![Eligibility check overview page](/images/providers/eligibility-check-overview.png) ### Eligibility search [#eligibility-search] An eligibility search is a container for all retry attempts of a particular eligibility check. When you submit an eligibility check through any method, Stedi creates a new eligibility search record. Every time you retry that eligibility check, Stedi stores the retry details within the existing eligibility search. This creates a clear timeline of troubleshooting efforts for failed requests. You can view the eligibility search for any check to track the full retry history. For example, you can see all troubleshooting attempts made to resolve a failed check for patient Jane Doe and review what changed for each attempt. From an individual eligibility check's detail page, click **View search** to open the search. If the search contains multiple checks, the button shows the count of related checks. #### Search details [#search-details] When you click **View search** from a check detail page, you can view the search overview and a complete history of all check attempts. From the search detail page, you can view all individual checks within the search to see the progression of retry attempts. Click any check to see its full details, including benefits information (if present), and the raw request and response data. #### Search result [#search-result] The **highest-priority check** among all checks in the search determines the result of an eligibility search. Stedi uses the following priority order: **Active → Inactive → Investigate → Failed**. If multiple checks share the same priority result, the most recent check determines the search result. **Example:** A search contains three sequential checks: first a Failed check, then an Active check, and finally another Failed check. The search result is `Active` because Active has the highest priority, even though it's not the most recent check. This priority logic also applies to all search-level data displayed in the eligibility search details, including patient information, payer details, service type codes, and error metadata. All of this data comes from the highest-priority check, not necessarily the most recent check. An eligibility search can have one of the following results: {/* prettier-ignore-start */} | Result | Description | | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Active** | The payer's response contains an active eligibility and benefit type. Visit [Eligibility and benefit type codes](/healthcare/eligibility-active-coverage-benefits#benefit-type-codes) for a complete list of valid code values. | | **Inactive**| The payer's response doesn't contain an active eligibility and benefit type. | | **Investigate** | The payer returned an unexpected eligibility or benefit type code. Review the response and contact the payer if you have questions. | | **Failed** | The payer returned an error code in the response. Review the error code and retry the eligibility check. | {/* prettier-ignore-end */} ## Run eligibility checks [#run-eligibility-checks] You can run eligibility checks in the Stedi portal. To run a new eligibility check: 1. Go to the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). 2. Click **+ New eligibility check**. Stedi opens the eligibility check form. 3. Complete the form, then choose how to run the check under **Run as**: - **Agentic Discovery** runs an automated workflow that recovers failed checks and falls back to insurance discovery. - **Single eligibility check** runs one standard eligibility check. Visit [Submit eligibility checks - Manual](/healthcare/send-eligibility-checks-ui) for complete instructions about running Agentic Discovery and standard eligibility checks, including how to retry failed checks. ## Link to specific eligibility checks [#link-to-specific-eligibility-checks] Stedi assigns a globally unique identifier to each eligibility check, formatted as `ec_`. For example: `ec_f81d4fae-7dec-11d0-a765-00a0c91e6b12`. Stedi returns the unique eligibility check ID in the following locations: - **SOAP Eligibility Check endpoint:** `stedi-id` header in the HTTP response - **JSON and Raw X12 Eligibility Check endpoints** `id` property in the JSON response - **Poll Batch Checks endpoint:** `items.id` property in the JSON response - **Retrieve Batch Check Statuses endpoint:** `items[].additionalInfo.eligibility.id` property in the JSON response You can use the eligibility check ID to link directly to a specific eligibility check's results in the Stedi portal. The format for direct portal links is: `https://portal.stedi.com/app/healthcare/eligibility/checks/{check-id}`, where `{check-id}` is the unique Stedi-assigned eligibility check ID. # Overview Source: https://www.stedi.com/docs/healthcare/eligibility-workflows-overview Automate insurance verification with Stedi, from eligibility checks to insurance discovery. Monitor your eligibility pipeline in the Stedi portal. Eligibility refers to a patient's qualification to receive specific medical benefits, services, or coverage under their health plan. Stedi lets you reliably determine patient eligibility, even when the patient doesn't know or can't provide accurate insurance information. Once you integrate with Stedi, you can use the UI tools in the Stedi portal to test, troubleshoot, and monitor your entire eligibility pipeline. ## Eligibility workflows [#eligibility-workflows] You can automate the following eligibility workflows with Stedi: - [Eligibility checks](/healthcare/intro-eligibility-checks): Verify a patient's coverage with a specific payer. Eligibility checks return full benefits information from the payer, so they're helpful when you need to determine a patient's financial responsibilities for medical services, such as co-payments, deductibles, and out-of-pocket maximums. - [Insurance discovery](/healthcare/insurance-discovery): Find a patient's active health plans using their demographic information, such as their name and date of birth. Insurance discovery checks return the same benefits information as a standard eligibility check, making them a great backup for verifying coverage when eligibility checks fail or aren't possible. - [MBI lookup](/healthcare/mbi-lookup): Find a Medicare patient's Medicare Beneficiary Identifier (MBI) using their demographic information. check. Stedi returns a complete eligibility response, including the patient's coverage status and MBI for future reference. - [Coordination of benefits](/healthcare/coordination-of-benefits): Determine whether a patient has multiple, overlapping coverages and if so, which plan is primarily responsible for payment (primacy). Coordination of benefits (COB) checks help you submit claims to the correct payer and avoid claim denials. The most common workflows for eligibility checks and insurance discovery are patient intake and claims submission. You can also use insurance discovery checks during revenue recovery. The following flowchart shows how these workflows typically work together during patient intake and claims submission: ![Insurance discovery workflow](/images/diagrams/insurance-discovery.svg) ## Eligibility views [#eligibility-views] The [Eligibility views](/healthcare/eligibility-views) help you track and manage your entire eligibility pipeline. You can efficiently troubleshoot issues, review patient coverage details, and automatically find coverage with [Agentic Discovery](/healthcare/send-eligibility-checks-ui#agentic-discovery-recommended). Within the Stedi portal, you can also manually submit new eligibility checks and coordination of benefits checks as needed. ## MCP server [#mcp-server] Our [Model Context Protocol (MCP) server](/healthcare/mcp-server) defines a set of tools that AI agents can use to perform and troubleshoot eligibility checks through Stedi. When building agents that work with eligibility data, we recommend using our MCP server. It excels at individual eligibility checks, especially when your agent needs to retrieve coverage data in real time. # Configure and test event destinations Source: https://www.stedi.com/docs/healthcare/event-destinations-configure You can configure event destinations that automatically send Stedi events to your endpoint. Events indicate changes to Stedi resources, such as [transaction enrollment](/healthcare/transaction-enrollment) requests. In each event message, Stedi includes a signature you can use to [verify its authenticity](/healthcare/event-destinations-message-handling#verify-authenticity-and-receipt-time). Stedi also automatically manages retries for event deliveries and sends you in-app notifications and emails when event deliveries fail repeatedly. You can manage your [notification preferences](/healthcare/account-settings#notification-preferences) to control which notifications you receive. Event destination endpoints are available in the Stedi TypeScript and Python SDKs. Visit [SDKs](/healthcare/sdks) for installation and usage details. ## Create event destinations [#create-event-destinations] You can create up to 16 event destinations per Stedi account. You can create event destinations through the API or manually through the Stedi portal. ### API [#api] Call the [Create Event Destination](/healthcare/api-reference/post-event-destinations-create-destination) endpoint with the destination name, webhook URL, and event types you want to receive. For example, the following request creates a destination named "My Destination" that subscribes to `enrollment.activated` events and delivers them to `https://example.com/webhooks`: ```bash curl --request POST \ --url "https://events.us.stedi.com/2026-02-01/destinations" \ --header "Idempotency-Key: a1b2c3d4-e5f6-7890-abcd-ef1234567890" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "destinationUrl": "https://example.com/webhooks", "eventTypes": [ "enrollment.activated" ], "name": "My Destination", "status": "ENABLED" }' ``` The API returns the destination details and the signing secret: ```json { "createdAt": "2026-02-01T12:00:00Z", "description": "Receives enrollment notifications", "destinationUrl": "https://example.com/webhooks", "eventTypes": ["enrollment.activated"], "id": "dst_550e8400-e29b-41d4-a716-446655440000", "name": "My Destination", "signingSecret": "whsec_YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=", "status": "ENABLED", "updatedAt": "2026-02-01T12:00:00Z" } ``` Store the signing secret securely – you'll need it to verify that events you receive are from Stedi. ### Stedi portal [#stedi-portal] To create a destination in the portal: 1. Go to the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. 2. Click All event destinations. 3. Click **+ New destination**. 4. Enter the following information into the **Create an event destination** form: 1. **Name:** Choose a descriptive, human-readable name for the event destination. Stedi displays this name in the portal for identification. 2. **URL:** Enter the webhook URL where you want Stedi to send events. The URL must use `https://` and must point directly at your webhook receiver. Stedi doesn't follow HTTP redirects - if your endpoint responds with a `3xx` status code, Stedi records the delivery as a failure. 3. **Description:** Optionally, describe the intended use for the destination in more detail. Stedi displays this description in the portal. 4. **Events:** Select the event types you want to send to the designated webhook URL. 5. Click **Create destination**. Stedi displays a modal containing the signing secret for this webhook. Save it to a secure location. You need it to verify that the events you receive are from Stedi. You can now begin testing the event destination. ## Trigger test events [#trigger-test-events] You can manually trigger [`event.ping` events](/healthcare/event-destinations-event-types#eventping) for any configured event destination. To trigger test events: 1. Go to the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. 2. Click the event destination you want to test. 3. Click the **Event deliveries** tab. 4. Click the **Ping** button. Stedi attempts to deliver an `event.ping` to the designated webhook URL. You can review its status and details on the **Event deliveries** tab. ## Secrets [#secrets] Stedi generates a secret for each event destination. You can use the secret to [verify the authenticity](/healthcare/event-destinations-message-handling#verify-authenticity-and-receipt-time) of the event messages you receive from Stedi. ### Retrieve secrets [#retrieve-secrets] You can retrieve an event destination's secret through the API or manually through the Stedi portal. #### API [#api-1] Call the [Get Event Destination Secret](/healthcare/api-reference/get-event-destinations-destination-secret) endpoint with the destination ID. For example, the following request retrieves the signing secret for the specified destination: ```bash curl --request GET \ --url "https://events.us.stedi.com/2026-02-01/destinations/{destinationId}/secret" \ --header "Authorization: " ``` The API returns the signing secret: ```json { "signingSecret": "whsec_YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=" } ``` #### Stedi portal [#stedi-portal-1] You can review and copy an event destination's secret at any time from its **Overview** tab on the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. ### Rotate secrets [#rotate-secrets] You can rotate the secret in accordance with your organization's security policies. You can rotate secrets through the API or manually through the Stedi portal. When you rotate a secret, you can specify an expiry period for the previous secret. If you specify an expiry period, the event message contains two signatures until that period concludes: one matching the previous secret and one matching the new secret. You'll need to run any verification steps with both until the expiry period ends. Each event destination can have only two active secrets at a time. If you set an expiry period for the rotated secret, you must wait until that expiry period has passed before attempting to rotate the secret again. #### API [#api-2] Call the [Rotate Event Destination Secret](/healthcare/api-reference/post-event-destinations-rotate-destination-secret) endpoint with the destination ID and optionally specify how long the previous secret remains valid (default is 24 hours). For example, the following request rotates the secret for the specified destination with a 24-hour grace period: ```bash curl --request POST \ --url "https://events.us.stedi.com/2026-02-01/destinations/{destinationId}/secret/rotate" \ --header "Idempotency-Key: d4e5f6a7-b8c9-0123-defa-234567890123" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "previousSecretExpiryHours": 24 }' ``` The API returns the new signing secret and the expiration time for the previous secret: ```json { "previousSecretExpiresAt": "2025-01-01T00:00:00Z", "signingSecret": "whsec_bmV3c2VjcmV0Zm9ycm90YXRpb25leGFtcGxlMTIzNA==" } ``` #### Stedi portal [#stedi-portal-2] To rotate a secret in the portal: 1. Go to the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. 2. Click the event destination you want to edit to go to its **Overview** tab. 3. Under **Signing secret**, click the **Rotate secret** icon. 4. Select an **Expiry period**. This is the number of hours the previous secret remains valid after rotation. Available options are: - 0 hours (previous secret expires immediately) - 24 hours - 720 hours (30 days) 5. Click **Rotate**. ## Manage event destinations [#manage-event-destinations] Manage event destinations using the API or Stedi portal. ### API [#api-3] You can manage event destinations programmatically through the API. Visit the following API reference pages for more information: - [List Event Destinations](/healthcare/api-reference/get-event-destinations-list-destinations) - [Get Event Destination](/healthcare/api-reference/get-event-destinations-destination) - [Update Event Destination](/healthcare/api-reference/post-event-destinations-update-destination) - [Delete Event Destination](/healthcare/api-reference/delete-event-destinations-destination) ### Stedi portal [#stedi-portal-3] You can review a list of all configured event destinations from the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. Click the **ellipses (...)** to the right of any destination to view, edit, disable, re-enable, or delete it. ### Disable versus delete [#disable-versus-delete] Disabling an event destination causes Stedi to stop sending new events to the webhook. Stedi also attempts to complete any in-progress retry attempts, and then pauses additional retries until the event destination is re-enabled. Once you re-enable the event destination, Stedi resumes retrying undelivered events until it reaches the retry limit. Deleting an event destination stops all event deliveries, including in-progress retry attempts immediately. # Events and message schema Source: https://www.stedi.com/docs/healthcare/event-destinations-event-types You can configure event destinations for Stedi transaction enrollment events, Core file processing events, and OAuth app events. ## Message schema [#message-schema] Stedi sends relevant events as a `POST` HTTP request to the specified destination URL. Stedi uses the following schema for event destination deliveries. ### Headers [#headers] Each event delivery includes the following required headers: | Header | Type | Description | | ------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `attempt-number` | integer | The delivery attempt number. The initial delivery is `1`. | | `attempt-type` | enum | Whether the attempt originated from Stedi (`AUTOMATIC`) or was a manual retry (`MANUAL`). | | `destination-id` | string | The identifier for the event destination,formatted as `dst_{UUID}`. | | `event-id` | string | The event identifier, formatted as `evt_{UUID}`. | | `user-agent` | string | `Stedi-Events/1.0 (+https://www.stedi.com/docs/healthcare/event-destinations-message-handling)`. The product token `Stedi-Events/1.0` is stable. Match on the `Stedi-Events/` prefix in firewall or CDN rules that require a `User-Agent`. The comment in parentheses is informational and can change without notice. | | `webhook-id` | string | A unique message identifier per the [Standard Webhooks](https://www.standardwebhooks.com/) specification, formatted as `msg_{UUID}`. You can use this to check for duplicate event deliveries. | | `webhook-signature` | string | A Stedi-generated signature, formatted as `v1,{signature}`. Use this to verify message authenticity. | | `webhook-timestamp` | integer | A Unix timestamp indicating when Stedi created the event. This is different from when Stedi delivered the event. You can use this to verify the time of receipt. | The following example headers show that this is the original delivery (`attempt-number: 1`) from Stedi. ```bash attempt-number: 1 attempt-type: AUTOMATIC destination-id: dst_019d30e3-5e39-7ab3-9a2e-fcf8218a313d event-id: evt_b73ae1d2-9128-90b5-60ff-7479ab8b30ac user-agent: Stedi-Events/1.0 (+https://www.stedi.com/docs/healthcare/event-destinations-message-handling) webhook-id: msg_b73ae1d2-9128-90b5-60ff-7479ab8b30ac webhook-signature: v1,Z5wMZ2rqRMsnGdfKzOLnRv1SIwivsLFCGQzJH7eCmlU= webhook-timestamp: 1774641758 ``` ### Event payload [#event-payload] Stedi events use a thin event schema. Thin events notify you that a resource has changed but don't include the resource's data. Once you receive an event, verify the resource's state and retrieve details using Stedi's APIs or the Stedi portal. The event payload schema is available in the [Get Event Destination Event](/healthcare/api-reference/get-event-destinations-event) endpoint's `eventPayload.v1Event` object. ## Data retention [#data-retention] By default, Stedi returns event data and displays delivery attempts from the past 30 days. Contact us if you need access to older event data. ## Events [#events] You can subscribe to transaction enrollment events, file processing events, and OAuth app events. You can also [trigger a generic test event](/healthcare/event-destinations-configure#trigger-test-events) from within the Stedi portal to test your event destinations. ### Test event [#test-event] You can trigger this event to validate that you configured your event destination correctly and it receives events. #### event.ping [#eventping] ```json { "id": "evt_019d51b6-8d19-71c3-8f5f-cfb55830b618", "object": "v1.event", "created": "2026-04-03T05:00:11.417Z", "environment": "PRODUCTION", "resource": { "type": "destination", "id": "dst_019d51b6-707c-7920-8569-de40061cbe5c" }, "account": "cd26e999-2cb9-4c64-be13-f7375e640b83", "type": "event.ping" } ``` ### Transaction enrollment events [#transaction-enrollment-events] Subscribe to these events to track changes in your transaction enrollment requests. #### enrollment.activated [#enrollmentactivated] Stedi generates this event when a [transaction enrollment](/healthcare/transaction-enrollment) request is set to `LIVE` status. This indicates that the enrollment process is complete, and the specified provider can begin exchanging the listed transaction types with the payer. You can use the enrollment ID in `resource.id` to retrieve details through the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint or the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) in the Stedi portal. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "enrollment" }, "type": "enrollment.activated" } ``` #### enrollment.rejected [#enrollmentrejected] Stedi generates this event when a [transaction enrollment](/healthcare/transaction-enrollment) request is set to `REJECTED` status. This indicates that the payer rejected the enrollment. Common reasons for rejection include incorrect details in the request and the provider not completing the credentialing process with the payer. Customer support contacts you with reasons for rejection and next steps. You can use the enrollment ID in `resource.id` to retrieve details through the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint or the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) in the Stedi portal. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:18:52.772Z", "environment": "PRODUCTION", "id": "evt_8c28ce2e-5d4f-ae1c-fddb-e2421245a873", "object": "v1.event", "resource": { "id": "019bb4e9-5209-7e83-bc84-0db436be7e00", "type": "enrollment" }, "type": "enrollment.rejected" } ``` #### enrollment.updated [#enrollmentupdated] Stedi generates this event when a [transaction enrollment](/healthcare/transaction-enrollment) request changes, such as an update to its status, payer, contacts, provider details, tasks, or documents. Use it to keep your records in sync with the latest state of the enrollment. You can use the enrollment ID in `resource.id` to retrieve details through the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint or the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) in the Stedi portal. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "enrollment" }, "type": "enrollment.updated" } ``` #### enrollment.task.assigned [#enrollmenttaskassigned] Stedi generates this event when it assigns a new enrollment [task](/healthcare/transaction-enrollment-tasks-documents) to the provider. Tasks describe actions the provider must take to move the enrollment forward. When Stedi assigns a new task, the enrollment status changes to `PROVIDER_ACTION_REQUIRED`. You can use the task ID in `resource.id` and the enrollment ID in `relatedResources[].id` to retrieve details through the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint or the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) in the Stedi portal. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-04-24T10:00:00.000Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "enrollment.task" }, "relatedResources": [ { "id": "019bb4e9-5209-7e83-bc84-0db436be7e00", "type": "enrollment" } ], "type": "enrollment.task.assigned" } ``` #### enrollment.task.completed [#enrollmenttaskcompleted] Stedi generates this event when the provider completes an enrollment [task](/healthcare/transaction-enrollment-tasks-documents). This indicates that the provider finished the requested action, such as uploading a document or providing an identifier. You can use the task ID in `resource.id` and the enrollment ID in `relatedResources[].id` to retrieve details through the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint or the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) in the Stedi portal. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-04-24T10:00:00.000Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "enrollment.task" }, "relatedResources": [ { "id": "019bb4e9-5209-7e83-bc84-0db436be7e00", "type": "enrollment" } ], "type": "enrollment.task.completed" } ``` #### enrollment.task.deleted [#enrollmenttaskdeleted] Stedi generates this event when Stedi deletes an enrollment [task](/healthcare/transaction-enrollment-tasks-documents) assigned to the provider. This typically occurs when a new task supersedes an existing one for a payer. For example, if the requirements for the enrollment process change, we delete the old task and create a new one that reflects the updated requirements. When you receive this event, the deleted task is no longer needed to move the enrollment forward. You can use the task ID in `resource.id` and the enrollment ID in `relatedResources[].id` to retrieve details through the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint or the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) in the Stedi portal. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-04-24T10:00:00.000Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "enrollment.task" }, "relatedResources": [ { "id": "019bb4e9-5209-7e83-bc84-0db436be7e00", "type": "enrollment" } ], "type": "enrollment.task.deleted" } ``` ### File processing events [#file-processing-events] Subscribe to these events to track file and transaction processing. #### file.processed [#fileprocessed] Stedi generates this event when it successfully processes a file. For example, Stedi emits a `file.processed` event when the payer sends a 277CA claim acknowledgment. Use the execution ID in `resource.id` to retrieve the file data through the [Retrieve File Execution Input](/healthcare/api-reference/get-execution-input) endpoint. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "execution" }, "type": "file.processed" } ``` #### file.failed [#filefailed] Stedi generates this event when it fails to process a file. For example, Stedi generates a `file.failed` event when it can't parse an SFTP claim submission. Monitor these events to identify processing errors, including parsing issues or connection problems. Use the execution ID in `resource.id` to retrieve the file data through the [Retrieve File Execution Input](/healthcare/api-reference/get-execution-input) endpoint. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "execution" }, "type": "file.failed" } ``` #### transaction.processed [#transactionprocessed] Stedi generates this event after it successfully receives and translates a transaction. For example, Stedi emits this event when it translates a payer's 277CA claim acknowledgment or 835 Electronic Remittance Advice (ERA) into JSON, or when it translates your JSON claim submission into X12 EDI format for the payer. A single file with multiple transactions produces one `file.processed` event and multiple `transaction.processed` events - one for each transaction in the file. The `relatedResources` array identifies the transaction type in the format `transaction.x12.`. For example, `transaction.x12.837` represents claim submissions, `transaction.x12.835` represents 835 Electronic Remittance Advice (ERAs), and `transaction.x12.277` represents 277CA claim acknowledgments. The `relatedResources` array contains two entries you can use to retrieve the transaction data: the transaction itself and the file execution it came from. - **JSON format (277CA and 835 only):** Call the [Get 835 ERA Report](/healthcare/api-reference/get-healthcare-reports-835) or [Get 277CA Report](/healthcare/api-reference/get-healthcare-reports-277) endpoint with the transaction ID, which is `relatedResources[].id` for the `transaction.x12.` entry. - **X12 EDI format:** Call the [Retrieve File Execution Input](/healthcare/api-reference/get-execution-input) endpoint with the execution ID, which is `relatedResources[].id` for the entry with `type` set to `execution`. The endpoint returns the entire file. A file usually contains one transaction, but it can contain more. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction" }, "relatedResources": [ { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction.x12.835" }, { "id": "01997873-bebb-7b33-81ef-f408866dfb2c", "type": "execution" } ], "type": "transaction.processed" } ``` ### App events [#app-events] Subscribe to these events to track [OAuth app](/healthcare/oauth-apps) installs and uninstalls in customer accounts. #### app.installed [#appinstalled] Stedi generates this event when a customer installs your OAuth app in their Stedi account. Stedi delivers the event to your app developer account. Use the app client ID in `relatedResources` to identify which customer account installed your app. ```json { "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "account": "7f3c1b2a-9d40-4e6f-8a11-5c2d9e7b4a03", "environment": "PRODUCTION", "created": "2026-08-17T14:22:08.000Z", "resource": { "id": "app_550e8400-e29b-41d4-a716-446655440000", "type": "app" }, "relatedResources": [ { "id": "c1e2f3a4-b5c6-4d7e-8f90-1a2b3c4d5e6f", "type": "account" }, { "id": "stedi_cid_b7e2c1d0-9f8a-4e3b-a6c5-1d2e3f4a5b6c", "type": "app.client" } ], "type": "app.installed" } ``` #### app.uninstalled [#appuninstalled] Stedi generates this event when a customer uninstalls your OAuth app from their Stedi account. Stedi delivers the event to your app developer account. Use the app client ID in `relatedResources` to identify which customer account uninstalled your app. ```json { "id": "evt_b91760g2-27b6-acbd-14f2-1cb9bc6f9763", "object": "v1.event", "account": "7f3c1b2a-9d40-4e6f-8a11-5c2d9e7b4a03", "environment": "PRODUCTION", "created": "2026-08-20T09:05:41.000Z", "resource": { "id": "app_550e8400-e29b-41d4-a716-446655440000", "type": "app" }, "relatedResources": [ { "id": "c1e2f3a4-b5c6-4d7e-8f90-1a2b3c4d5e6f", "type": "account" }, { "id": "stedi_cid_b7e2c1d0-9f8a-4e3b-a6c5-1d2e3f4a5b6c", "type": "app.client" } ], "type": "app.uninstalled" } ``` # Handle event deliveries and retries Source: https://www.stedi.com/docs/healthcare/event-destinations-message-handling Stedi begins sending events to your webhook immediately after you [configure an event destination](/healthcare/event-destinations-configure). ## Review events and deliveries [#review-events-and-deliveries] You can access events and event delivery attempts manually through the Stedi portal or programmatically through Stedi's Events API. ### Stedi portal [#stedi-portal] You can review all events and attempted event deliveries in the Stedi portal. This allows you to verify your destination is working and helps with troubleshooting. To review events and event deliveries through the **Events** page: 1. Go to the [Events page](https://portal.stedi.com/app/settings/developer/events) in your developer settings. Stedi displays a list of all events in your account for the past 30 days. 2. Click an event to review its details. Stedi shows key information, including the created date and type, as well as a list of every delivery attempt to configured event destinations. 3. Click a delivery attempt to review its complete details, including the HTTP status code and the full request and response bodies for that attempt. To review event deliveries for a specific event destination: 1. Go to the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. 2. Click an event destination and select its **Event deliveries** tab. Stedi lists all the event delivery attempts and their status for the past 30 days. 3. Click an event delivery to review its details, including the HTTP status code and the full request and response bodies for that attempt. ### Events API [#events-api] You can also retrieve events programmatically through the following endpoints: - [List Event Destination Events](/healthcare/api-reference/get-event-destinations-list-events): Retrieve a list of all events generated in your Stedi account within the last 30 days. You can filter by event type, delivery status, and created date. - [Get Event Destination Event](/healthcare/api-reference/get-event-destinations-event): Retrieve the full details of a specific event, including the full event payload Stedi sends to event destinations. ## Delivery failures [#delivery-failures] When Stedi can't deliver an event to one or more event destinations, Stedi automatically retries each failed delivery for up to 48 hours. If all attempted retries fail, Stedi temporarily disables the associated event destination to prevent more missed deliveries. Once you address the issue, you can [re-enable the event destination](/healthcare/event-destinations-configure#manage-event-destinations) to resume event deliveries. ### What causes failures [#what-causes-failures] Stedi marks a delivery as failed in the following scenarios: - **HTTP redirects (3xx status codes)**: Stedi doesn't follow HTTP redirects. If your endpoint responds with a `3xx` status code, the delivery is recorded as a failure. Configure your endpoint to serve webhooks directly instead of redirecting to another URL. - **Client and server errors (4xx and 5xx status codes)**: Any status code other than `2xx` is treated as a failure. - **Network errors**: Connection timeouts, DNS failures, or other network-level issues. - **Blocked requests**: Firewalls, WAFs, and CDNs sometimes reject requests based on their headers. Stedi sends a `user-agent` header with a stable `Stedi-Events/` product token that you can allowlist. See the [delivery headers](/healthcare/event-destinations-event-types#headers) for the value. Stedi considers only `2xx` status codes as successful deliveries. ### Automatic retries [#automatic-retries] Stedi automatically retries at the following intervals: - 5 minutes - 30 minutes - 2 hours - 8 hours - 24 hours - 48 hours You can review all retry attempts from within the Stedi portal. ### Manual retries [#manual-retries] You can manually retry event deliveries as needed. Manual retries reset Stedi's automated retry process. For example, if you manually retry an event delivery after the second automatic attempt at 2 hours, the next automated retry attempt will occur after 5 minutes and continue according to Stedi's retry schedule for up to 48 hours. To retry through the **Events** page: 1. Go to the [Events page](https://portal.stedi.com/app/settings/developer/events) in your developer settings. Stedi displays a list of all events in your account. 2. Click an event to review its details. Stedi shows key information, including the created date and source, as well as a list of every delivery attempt to configured event destinations. 3. Click the **Retry** button next to a failed delivery to start a retry attempt. Stedi adds a new delivery row to the event record so you can monitor the progress. To retry through an event destination's **Event deliveries** tab: 1. Go to the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. 2. Click an event destination and select its **Event deliveries** tab. Stedi lists all the event delivery attempts and their status. 3. Click an event delivery to review its details. 4. Click **Retry delivery** to start a retry attempt. Stedi adds a new event delivery row to the **Event deliveries** tab so you can monitor the progress. ### Notifications [#notifications] When event deliveries to an event destination repeatedly fail, Stedi sends in-app notifications and emails to alert you. You can manage your [notification preferences](/healthcare/account-settings#notification-preferences) to control which notifications you receive. Stedi sends in-app notifications and emails to every member of the Stedi account at the following intervals: 1. **After 2 hours:** If retry attempts for all events continue failing for 2 hours, we send an in-app notification and email notifying you that deliveries are failing for the associated event destination. You should log in to your Stedi account and investigate the issue as soon as you can. Stedi will continue automatic retries. 2. **After 24 hours:** If retry attempts for all events associated with an event destination continue failing for 24 hours, we send another in-app notification and email informing you that Stedi's retry limit is approaching. If all attempts fail, Stedi disables the associated event destination to prevent more missed deliveries. ## Process undelivered events [#process-undelivered-events] Stedi [automatically retries event deliveries](#delivery-failures) for up to 48 hours before marking them as failed. However, we recommend implementing a strategy to manually process undelivered events in case your endpoint remains unavailable or event delivery is interrupted. 1. Call the [List Event Destination Events](/healthcare/api-reference/get-event-destinations-list-events) endpoint to retrieve a list of all events with a `FAILED` status. The response includes an `id` for each event. ```json { "items": [ { "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "eventType": "enrollment.activated", "status": "FAILED", "createdAt": "2026-02-01T12:00:00Z" } ] } ``` 2. Call the [Get Event Destination Event](/healthcare/api-reference/get-event-destinations-event) endpoint to get the full payload for each event. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "enrollment" }, "type": "enrollment.activated" } ``` 3. Process each event. Note that the receipt time will likely be outside your normal tolerance window. ## Message handling best practices [#message-handling-best-practices] We **strongly recommend** implementing these best practices for event handling. ### Don't rely on event order [#dont-rely-on-event-order] Stedi attempts to deliver events as soon as possible after they're generated. However, we can't guarantee that your endpoint will receive events in order. Ensure your implementation isn't dependent on event order. ### Verify authenticity and receipt time [#verify-authenticity-and-receipt-time] We strongly recommend verifying each signed message to ensure it's from Stedi. You should also verify that the message was generated within your expected timeframe for receipt. This helps protect you from replay attacks. Each event contains two headers you can use to verify a message's authenticity: `webhook-signature` and `webhook-timestamp`. ```bash webhook-signature: v1,Z5wMZ2rqRMsnGdfKzOLnRv1SIwivsLFCGQzJH7eCmlU= webhook-timestamp: 1774641758 ``` To verify the message authenticity and receipt time: 1. Create a `signed_payload` string by concatenating the timestamp (as a string) with the character `.` and the entire JSON request body. 2. Compute an [HMAC with the SHA256 hash function](https://datatracker.ietf.org/doc/html/rfc4868). Use the event destination secret as the key, and use the `signed_payload` string as the message. This should produce a signature. 3. Split the signature string in the message's `webhook-signature` header from the version (`v1`). 4. Compare the signature from the event message to your computed signature. If they are equivalent, then the message is from Stedi. If not, reject the message. 5. Compute the difference between the timestamp provided in the message and the current timestamp. If the difference is outside your tolerance, reject it. To protect against timing attacks, use a constant-time string comparison to compare the expected signature to each one you received from Stedi. Our implementation follows the [Standard Webhooks](https://www.standardwebhooks.com/) specification. The following TypeScript example uses the `standardwebhooks` library for signature verification. ```typescript import { Webhook } from "standardwebhooks"; import type { CapturedWebhook } from "./types"; export function assertWebhookValid( webhook: CapturedWebhook, secret: string, ): void { const wh = new Webhook(secret); try { wh.verify(webhook.request.body, webhook.request.headers); } catch (err) { throw new Error( `Webhook signature verification failed: ${err instanceof Error ? err.message : String(err)}. ` + `Headers: ${JSON.stringify(webhook.request.headers)}`, ); } } ``` ### Check the resource record [#check-the-resource-record] Stedi events use a thin event schema that doesn't include the updated resource's data. Before taking action based on an event, you should use Stedi APIs to retrieve the resource's details and verify its current state. This approach ensures you're acting on the latest data, even if events arrive out of order. ### Check for duplicates [#check-for-duplicates] Your webhook may occasionally receive the same event multiple times. For example, your webhook may receive the same event from both automatic retries and a [manual recovery process](#process-undelivered-events). We strongly recommend logging the IDs for events you've processed, comparing them against new events, and filtering out duplicates. We recommend using the `webhook-id` header for this purpose. It contains a unique Stedi-generated identifier for the event, formatted as `msg_{UUID}`. ```bash webhook-id: msg_b73ae1d2-9128-90b5-60ff-7479ab8b30ac ``` ### Check for processing errors [#check-for-processing-errors] We recommend periodically listing events to catch cases where events may have been delivered successfully but your processing logic encountered an error. 1. Call the [List Event Destination Events](/healthcare/api-reference/get-event-destinations-list-events) endpoint to retrieve events generated in your Stedi account. Use the `created` parameter to filter for events within a specific time range and use the `eventType` parameter to filter for the event types relevant to your use case. 2. Compare the event IDs against the your internal records for processed events. Note that Stedi sends [notifications](/healthcare/event-destinations-message-handling#notifications) when event deliveries to an event destination fail repeatedly. You should also monitor for these notifications to help catch connectivity issues as soon as possible. # Developer Docs Source: https://www.stedi.com/docs/healthcare Integrate with the Stedi clearinghouse. Automate workflows with AI and APIs. ## Eligibility & benefits [#eligibility--benefits] Reliably determine eligibility and coordination of benefits, even when patients can't provide accurate insurance information. Submit 270/271 eligibility checks through the Stedi portal or API in either JSON or X12 EDI. Identify coverage overlap and determine payer responsibility for claims (primacy). Find active health plans using the patient's demographic data. Full reference for our Eligibility, Coordination of Benefits, and Insurance Discovery APIs. ## Claims processing [#claims-processing] Submit 837P professional, 837I institutional, and 837D dental claims and 276/277 real-time claim status checks in both JSON and X12 EDI. Send claims to payers through the API, an SFTP connection, or the Stedi portal. Retrieve processed 277CA claim acknowledgments and 835 ERAs from Stedi. Determine the processing status of existing claims in real time. Full reference for our Claims, Claim Status, and Reports (277CA and ERA) APIs. ## Payments and mail scanning [#payments-and-mail-scanning] Receive Electronic Funds Transfer (EFT) payments through Stedi Treasury, and paper checks and other payer mail through Stedi Lockbox. Manage payments, payouts, and mail in one place. Learn how Stedi Treasury consolidates EFT and paper check payments from payers. Create your billing entity, connect your bank account, and enroll with payers. Receive paper checks and payer mail at a dedicated address. Stedi scans every item and deposits checks into Treasury. Create a lockbox for a billing entity and add its address to your claims. # Overview Source: https://www.stedi.com/docs/healthcare/insurance-discovery-overview Find a patient's active coverage from their demographic data with an insurance discovery check when you don't know their payer. Eligibility checks verify a patient's coverage with a specific payer. But what if you don't know the patient's insurance details or you're not sure whether they have coverage at all? In these situations, you can use an insurance discovery check to search for a patient's active coverage using only their demographic data. Insurance discovery checks return an array of coverages along with subscriber details and benefits information. These coverages may be active or inactive, and there may be multiple of each type. If an insurance discovery check returns active coverage for the patient, you don't need to perform a follow-up eligibility check. The results include the same benefits information you'd get from running an eligibility check with the payer. Insurance discovery checks support both medical and dental use cases. We recommend using insurance discovery checks as a backup when eligibility checks fail or aren't possible. Don't rely on them as your primary method for verifying patient coverage. ## Use cases [#use-cases] If you have all the patient's demographic details (first name, last name, date of birth, member ID) and know the payer, running a standard eligibility check with that payer is always the most cost-effective and reliable path. Insurance discovery is the best option if running a standard eligibility check isn't possible. You may need to perform an insurance discovery check when: - You don't know the payer, such as when a patient doesn't have their insurance card or can't provide insurance details in an urgent care situation. - One or more eligibility checks failed with an AAA `75` (Subscriber Not Found) or similar error. - The patient's information is incomplete or outdated, such as when the patient can't provide their member ID. - The coverage on file is no longer active, such as when a member changes employers or loses coverage. The most common workflows for eligibility checks and insurance discovery are patient intake and claims submission. You can also use insurance discovery checks during revenue recovery. The following flowchart shows how insurance discovery works as part of these workflows: ![Insurance discovery workflow](/images/diagrams/insurance-discovery.svg) For patients who are likely covered by Medicare, such as those 65 or older, an [MBI lookup](/healthcare/mbi-lookup) is a targeted alternative to an insurance discovery check. An MBI lookup returns the patient's Medicare Beneficiary Identifier (MBI) and, if found, the patient's complete eligibility response from Medicare. You can run MBI lookups using only the patient's demographic information and (optionally) Social Security Number (SSN). ## How insurance discovery works [#how-insurance-discovery-works] Call the [Insurance Discovery Check](/healthcare/api-reference/post-insurance-discovery) endpoint or submit through the [Create insurance discovery check form](https://portal.stedi.com/app/healthcare/insurance-discovery/create) in the Stedi portal. Provide as much patient demographic information as possible, such as first name, last name, DOB, state, and SSN, to increase the chances of finding matching coverage. You'll also include information like the provider's NPI and the date of service, similar to an eligibility check. Stedi uses the supplied information - alongside its proprietary logic - to find coverage. This process usually takes between 3.5s and 13s. Stedi returns an array of coverages along with subscriber details and benefits information. A response can include multiple coverages, and each one can be active or inactive, depending on what the payer supplied. Review each coverage to confirm it's for your patient and active on your date of service. Visit [Determine which matches to use](/healthcare/insurance-discovery#determine-which-matches-to-use) for details. - When a coverage passes these checks, you can use its benefits information to determine the patient's eligibility for services. Since the coverage result comes directly from the payer's 271 response, you don't need to perform a follow-up eligibility check, as the insurance discovery response includes all the necessary benefits information. - When more than one coverage is active for your patient, visit [Handle multiple active coverages](/healthcare/insurance-discovery#handle-multiple-active-coverages) to determine the billing order. - If you need to change the date of service or service type code (STC), run a standard eligibility check with the exact demographic information the insurance discovery check returned. ## Usage notes [#usage-notes] - **Match rates vary**: Insurance discovery checks aren't guaranteed to return a patient's active health plans 100% of the time - especially when the request doesn't include key demographic information like the patient's state or Social Security Number (SSN). Although unlikely, false positives are possible, so you're ultimately responsible for matching results to your own records. - **Limited request types**: Insurance discovery checks can only request basic Health Benefit Plan Coverage (service type code `30`) or Dental Benefit Plan Coverage (service type code `35`). If you need specific benefits that aren't returned in the response, send a subsequent eligibility check for that service type or procedure code. - **NPI required**: Insurance discovery checks require an NPI, so you can't run them for [atypical providers](/healthcare/submit-claims-atypical-providers) who bill with other identifiers. - **Payers may return additional coverage types**: You may receive more coverage types than you requested. For example, when you request dental coverage (service type code `35`), payers may return medical coverage (service type code `30`) or other coverage types in addition to dental. Some national payers return all coverage they have on file, including inactive coverage. Stedi doesn't filter these results - you receive whatever the payer returns. Review `benefitsInformation.serviceTypeCodes` to identify the relevant coverage for your use case. - **Coverage is relative to service dates**: Insurance discovery checks can only return active coverage for the service dates in the request. For example: A patient starts a new job, and coverage with their new employer starts through Cigna in March 2026. Previously, they had active coverage through UnitedHealthcare (UHC). If you submit an insurance discovery check for a date of service in February 2026, and it succeeds, Stedi returns active coverage for UHC and no coverage for Cigna. - **No payer primacy**: Insurance discovery checks can't determine payer primacy. You must either run a coordination of benefits (COB) check or use your own internal logic to determine whether the patient has active coverage with additional payers and which payer is responsible for paying claims (primacy). - **API response time**: The p50 latency is ~10.2 seconds and the p90 latency is ~56.7 seconds, and Stedi returns a response within 120 seconds. Checks that don't complete synchronously return HTTP `202` with a `PENDING` state, and you can [retrieve the final results asynchronously](/healthcare/insurance-discovery#retrieve-results-asynchronously). # Submit insurance discovery checks - Manual Source: https://www.stedi.com/docs/healthcare/insurance-discovery-ui Run insurance discovery checks in the Stedi portal. Find a patient's active coverage from their demographic data, such as name or date of birth. You can submit insurance discovery checks through the Stedi portal. Visit [Overview](/healthcare/insurance-discovery-overview) for how insurance discovery works, or [Submit insurance discovery checks - API](/healthcare/insurance-discovery) to submit them programmatically. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) isn't required for insurance discovery, but we do strongly recommend it. Enrollment lets Stedi run [MBI lookups](/healthcare/mbi-lookup) as part of the discovery check in addition to checks to other large payers that require enrollment, improving your results. To enroll, submit an enrollment request for the Stedi Insurance Discovery payer ([payer ID: `DISCOVERY`](https://www.stedi.com/healthcare/network?page=0&search=disco&entry=UQKWC)): 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for **Real-time eligibility checks**. Use `DISCOVERY` as the payer ID (Stedi Insurance Discovery). [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) #### Medicaid Provider ID [#medicaid-provider-id] A Medicaid Provider ID is a unique identification number that state Medicaid programs assign to healthcare providers when they enroll. It's different than a provider's [National Provider Identifier (NPI)](/healthcare/national-provider-identifier), which the federal government assigns. If a provider works in multiple states, they'll have different Medicaid IDs for each state. Medicaid Provider IDs aren't required for transaction enrollment with Stedi, but they can enhance insurance discovery check results for certain payers. To add Medicaid Provider IDs to transaction enrollment requests, email [enrollments@stedi.com](mailto:enrollments@stedi.com) with a CSV file containing the NPI and Medicaid ID(s) for each provider. Many state Medicaid agencies have a provider lookup tool you can use to find a provider's Medicaid Provider ID. For example, providers practicing in Texas can use the [Texas Medicaid & Healthcare Partnership Provider lookup tool](https://opl.tmhp.com/) to search for enrolled providers. You can also call the state Medicaid agency to request a provider's ID. ## Required patient information [#required-patient-information] Provide as much patient demographic information as possible when submitting insurance discovery checks. The more information you provide, the more likely Stedi is to find matching coverage. #### Minimum required [#minimum-required] At a minimum, you must provide the patient's: - First name - Last name - Date of birth (DOB) #### Recommended [#recommended] We **strongly recommend** providing as much of the following additional information as possible: - State from the current address or previous addresses. This ensures that Stedi's insurance discovery logic finds localized, relevant payers. Without the state, Stedi can only determine coverage from the large, national payers. - Social Security Number (SSN). For medical use cases, the patient's full SSN is best, but even the last 4 digits of the SSN can help narrow down matching coverage. For dental use cases, providing the SSN is especially important. Many dental payers accept SSN in place of a member ID. When included, Stedi can search with additional dental carriers that accept SSN instead of member ID. If you don't have the subscriber's member ID but can include the SSN, Stedi is more likely to return active dental coverage. ## Submit insurance discovery checks [#submit-insurance-discovery-checks] You can submit an insurance discovery check from the Stedi portal. 1. Click **Insurance discovery** in the side navigation to go to the [Create insurance discovery check](https://portal.stedi.com/app/healthcare/insurance-discovery/create) form. 2. Enter the provider's NPI. 3. Enter as much patient demographic information as possible. Visit [Required patient information](#required-patient-information) for guidance. 4. (Optional) Search dental payers. The form defaults to **Health Benefit Plan Coverage** (service type code `30`), which searches medical payers. Select **Dental Care** (service type code `35`) to search dental payers instead. 5. Click **Submit**. Stedi runs the insurance discovery check and opens the check's detail page. ## Review the results [#review-the-results] The insurance discovery check's detail page shows one coverage at a time. When a check finds more than one coverage for the patient, Stedi lists the active coverages first, and you can use the dropdown in the header to switch between them. The page has two tabs: **Overview** shows a user-friendly format of the coverage details and benefits, and **Raw response** shows the raw API response. Each **Overview** tab includes the following information, when available: - **Status banner:** The coverage number and its status, such as **Coverage #1** and **Active coverage** - **Subscriber:** Name, date of birth, gender, member ID, and address - **Payer:** Organization name, payer ID, federal tax payer ID number, and contact URL and phone number Always [verify the match](#verify-the-match) to ensure that the subscriber or dependent information matches the information you submitted for the patient. ![Insurance discovery coverage overview](/images/providers/insurance-discovery-overview.png) Underneath the overview is a filterable table of the patient's benefits. It's the same table the Stedi portal uses for eligibility checks. Visit [Review benefits in the Stedi portal](/healthcare/eligibility-portal-benefits-view) to learn how to determine whether the patient is covered and what they owe. ![Benefits section on a coverage](/images/providers/benefits-table-overview.png) Unlike eligibility checks, the Stedi portal doesn't list past insurance discovery checks. Stedi opens a check's detail page when you submit it, and nothing in the portal links back to that check afterward. Save the URL if you want to return to it - the page loads for as long as Stedi stores the response. ## No matches [#no-matches] Insurance discovery checks can return zero matches for a patient even when they have active coverage. Common reasons for zero matches include: - Recommended demographic data, like state or SSN, was missing from the request. Provide as much [patient demographic information](#required-patient-information) as possible to increase the chances of finding matching coverage. - The patient's data doesn't exactly match what the payer has on file. For example, the patient demographics in the request don't match the patient's legal name or date of birth. - The payer that the patient has doesn't support real-time eligibility checks, which makes it impossible for Stedi to determine coverage. - The patient has coverage with a payer that supports eligibility checks, but Stedi's insurance discovery system couldn't find the payer. We're always looking for feedback. If you know the patient has coverage and determined the payer through other means, reach out to Stedi's support team for further investigation. ## Determine which matches to use [#determine-which-matches-to-use] An insurance discovery check can return multiple coverages. Stedi returns all the coverage it finds for the patient without filtering the results, so more than one coverage doesn't necessarily mean the patient has more than one active plan. A response can include several coverages for the following reasons: - Some national payers return every plan they have on file, including inactive coverage. - Payers return coverage types you didn't request, so a check scoped to one service type code can come back with benefits for others. - Checks match on demographic data, so some coverages aren't your patient. For every coverage a check returns, [verify the match](#verify-the-match) and [confirm active coverage on your date of service](#confirm-active-coverage-on-your-date-of-service). When there is more than one active coverage for the patient, you need to [determine the billing order](#handle-multiple-active-coverages) (primacy) before you submit a claim. ### Verify the match [#verify-the-match] For each coverage, always verify that the returned subscriber or dependent information matches the demographic information you submitted for the patient. Pay special attention to: - **Name matching:** The patient's name must match, though slight variations (like hyphenated or two-part last names) may appear. - **Date of birth:** Must match exactly. - **Address:** Must match or be a previous address. - **Other details you collected at intake:** For example, the patient's gender, ZIP Code, or state. When the patient is a dependent, the **Overview** tab lists their details under **Dependent** and the policyholder's under **Subscriber**. Their last names don't always match. ### Confirm active coverage on your date of service [#confirm-active-coverage-on-your-date-of-service] After you [verify the match](#verify-the-match), confirm that the coverage is active on your date of service. Scroll to the benefits table, filter by **Service or Procedure**, and choose the service type code (STC) or procedure code(s) you care about. Then check for the following information: - **Coverage statuses:** Check for rows with the **Type** column set to **Statuses**. The **Coverage** column lists the status for the STC or procedure code. Typically, only broad STCs (`30` and `35` for general medical and dental coverage) have a **Statuses** row. - **Dates:** Check the **Benefit** column for plan effective dates, plan eligibility dates, or any other dates the payer returned. The patient has coverage when a **Statuses** row shows **Active coverage** and the date of service falls within the plan's dates. You can also assume the patient has coverage when there's no **Statuses** row but the table lists benefits for that STC or procedure code, such as co-pay or deductible amounts. The patient doesn't have coverage when a **Statuses** row shows **Inactive**, or when the date of service falls outside the plan's dates. You can also assume the patient doesn't have coverage when the table lists no benefits for that STC or procedure code, or when the payer returned a message indicating that the service isn't covered. ![Benefits table statuses](/images/providers/benefits-table-statuses.png) A coverage shows an **Active coverage** outcome when the payer returned at least one active benefit type for it. However, you must review the benefits table to confirm that the patient has active coverage for the STCs you care about. When a coverage passes these checks, you can use its benefits details to determine the patient's eligibility for services. You don't need to run a follow-up eligibility check, because insurance discovery results contain the same benefits information. ## Handle multiple active coverages [#handle-multiple-active-coverages] For each coverage Stedi returns, [verify the match](#verify-the-match) and [confirm active coverage](#confirm-active-coverage-on-your-date-of-service) on your date of service. When more than one coverage is active for your patient, you need to know which payer pays first (primacy) before you submit a claim. Start by identifying every payer in the response, then determine the order. ### Identify payers [#identify-payers] Insurance discovery checks aren't guaranteed to return every active plan, so treat the payers a check returns as a starting point rather than a complete list. Each coverage's **Overview** tab names the payer for that coverage, including the payer ID you use to submit claims. Payers also report other coverage they know about. Benefits-related entities appear in their own column in the benefits table, and you can narrow the table to them with the **Has related entities** filter. They commonly designate the patient's primary care provider (PCP), another organization that handles a specific carveout benefit type, or another health plan for the patient (coordination of benefits scenarios). For example, Medicare coverage often names the patient's supplemental plan, and the supplemental plan often names Medicare. ![Related entities naming another payer](/images/providers/eligibility-checks-related-entities.png) You can run an [eligibility check](/healthcare/send-eligibility-checks-ui) with an additional payer to confirm the coverage and get a member ID for claims. If no related entities appear and you later receive a claim denial citing coordination of benefits (COB): - Check the subscriber and dependent details on the **Overview** tab for demographic information you didn't submit, such as a complete address. - Run another insurance discovery check with those details. This can surface coverage the first check didn't return. ### Determine primacy for billing [#determine-primacy-for-billing] Once you've identified all the payers, you need to know the billing order (primacy). Insurance discovery checks don't indicate primacy. You can establish primacy from a prior claim denial or by running a coordination of benefits (COB) check. **Prior claim denial** When you're sure the patient has only two active coverages and one of those payers has already denied a claim citing COB, the other payer is primary. For example, a check returns active coverage with both Aetna and Cigna, and Aetna denied your claim citing COB. In this case, Cigna is primary: 1. Resubmit the claim to Cigna and wait for adjudication. 2. Bill Aetna with a secondary claim built from Cigna's 835 Electronic Remittance Advice (ERA). Use the payment and adjustment amounts exactly as the ERA reports them. Visit [Submit to a secondary or tertiary payer](/healthcare/submit-professional-claims#submit-to-a-secondary-or-tertiary-payer) for the properties to include on the claim. **COB check** If you're not sure about primacy, run a coordination of benefits (COB) check. COB checks determine primacy across a member's known coverage and report the billing order in the response. A COB check can also return payers that the insurance discovery check didn't. Always set the billing order from a COB response, not from an insurance discovery or eligibility response. Original Medicare isn't part of the COB database, though many Medicare Advantage plans are. When a patient has Original Medicare, a COB check can't determine the billing order, so you must apply the primacy rules yourself. Visit [Primacy rules](/healthcare/cob-response#primacy-rules) for the guidelines Stedi follows, including how Medicare coordinates with other plans. Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for instructions on running a COB check. # Submit insurance discovery checks - API Source: https://www.stedi.com/docs/healthcare/insurance-discovery Submit insurance discovery checks through the Stedi API to find a patient's active coverage from their demographic data. You can submit insurance discovery checks through the Stedi API. Visit [Overview](/healthcare/insurance-discovery-overview) for how insurance discovery works, or [Submit insurance discovery checks - Manual](/healthcare/insurance-discovery-ui) to submit them in the Stedi portal. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) isn't required for insurance discovery, but we do strongly recommend it. Enrollment lets Stedi run [MBI lookups](/healthcare/mbi-lookup) as part of the discovery check in addition to checks to other large payers that require enrollment, improving your results. To enroll, submit an enrollment request for the Stedi Insurance Discovery payer ([payer ID: `DISCOVERY`](https://www.stedi.com/healthcare/network?page=0&search=disco&entry=UQKWC)): 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for **Real-time eligibility checks**. Use `DISCOVERY` as the payer ID (Stedi Insurance Discovery). [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) #### Medicaid Provider ID [#medicaid-provider-id] A Medicaid Provider ID is a unique identification number that state Medicaid programs assign to healthcare providers when they enroll. It's different than a provider's [National Provider Identifier (NPI)](/healthcare/national-provider-identifier), which the federal government assigns. If a provider works in multiple states, they'll have different Medicaid IDs for each state. Medicaid Provider IDs aren't required for transaction enrollment with Stedi, but they can enhance insurance discovery check results for certain payers. To add Medicaid Provider IDs to transaction enrollment requests, email [enrollments@stedi.com](mailto:enrollments@stedi.com) with a CSV file containing the NPI and Medicaid ID(s) for each provider. Many state Medicaid agencies have a provider lookup tool you can use to find a provider's Medicaid Provider ID. For example, providers practicing in Texas can use the [Texas Medicaid & Healthcare Partnership Provider lookup tool](https://opl.tmhp.com/) to search for enrolled providers. You can also call the state Medicaid agency to request a provider's ID. ## Required patient information [#required-patient-information] Provide as much patient demographic information as possible when submitting insurance discovery checks. The more information you provide, the more likely Stedi is to find matching coverage. #### Minimum required [#minimum-required] At a minimum, you must provide the patient's: - First name - Last name - Date of birth (DOB) #### Recommended [#recommended] We **strongly recommend** providing as much of the following additional information as possible: - State from the current address or previous addresses. This ensures that Stedi's insurance discovery logic finds localized, relevant payers. Without the state, Stedi can only determine coverage from the large, national payers. - Social Security Number (SSN). For medical use cases, the patient's full SSN is best, but even the last 4 digits of the SSN can help narrow down matching coverage. For dental use cases, providing the SSN is especially important. Many dental payers accept SSN in place of a member ID. When included, Stedi can search with additional dental carriers that accept SSN instead of member ID. If you don't have the subscriber's member ID but can include the SSN, Stedi is more likely to return active dental coverage. ## Submit insurance discovery checks [#submit-insurance-discovery-checks] You can submit an insurance discovery check using the [Insurance Discovery Check](/healthcare/api-reference/post-insurance-discovery) endpoint. - Supply as much patient demographic information as possible. Visit [Required patient information](#required-patient-information) for guidance. - Set `encounter.serviceTypeCodes` to `["35"]` to narrow the search to dental payers. Omit it to default to searching medical payers. ### Request [#request] The following examples show insurance discovery checks for a patient named Jane Doe. The medical example omits `encounter.serviceTypeCodes` to default to searching medical payers. The dental example includes `encounter.serviceTypeCodes: ["35"]` to narrow the search to dental payers. {/* schema:InsuranceDiscoveryCheckRequestContent */} ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/insurance-discovery/check/v1" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "provider": { "npi": "1999999984" }, "encounter": { "beginningDateOfService": "20250326", "endDateOfService": "20250328" }, "subscriber": { "dateOfBirth": "20010925", "firstName": "Jane", "lastName": "Doe", "ssn": "123456789", "address": { "address1": "1 MAIN ST", "address2": "UNIT 1", "city": "ANYTOWN", "state": "MO", "postalCode": "12341" } } }' ``` ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/insurance-discovery/check/v1" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "provider": { "npi": "1999999984" }, "encounter": { "beginningDateOfService": "20250326", "endDateOfService": "20250328", "serviceTypeCodes": ["35"] }, "subscriber": { "dateOfBirth": "20010925", "firstName": "Jane", "lastName": "Doe", "ssn": "123456789", "address": { "address1": "1 MAIN ST", "address2": "UNIT 1", "city": "ANYTOWN", "state": "MO", "postalCode": "12341" } } }' ``` ### Response [#response] Stedi's synchronous response to the [Insurance Discovery Check](/healthcare/api-reference/post-insurance-discovery) endpoint can take up to 120 seconds, though it's often faster (typically about 10 seconds). The synchronous response can have one of three `status` values, each returned with its own HTTP status code: `PENDING` (HTTP `202`), `COMPLETE` (HTTP `200`), or `ERROR` (HTTP `502`). #### Pending [#pending] Stedi returns HTTP `202` with a `PENDING` status when it's still processing the insurance discovery check for the patient. You can use the `discoveryId` in the response to [retrieve the results asynchronously](#retrieve-results-asynchronously). The following example response shows a `PENDING` insurance discovery check. {/* schema:InsuranceDiscoveryCheckResponseContent */} ```json Insurance discovery check in progress { "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "meta": { "applicationMode": "production", "traceId": "1-abcdef12-123456789abcdef123456789" }, "status": "PENDING", "items": [] } ``` #### Complete [#complete] Stedi returns HTTP `200` with a `COMPLETE` status when the insurance discovery check for the patient is finished. If Stedi finds coverage, the `items` array contains the results. If Stedi doesn't find any coverage, the `items` array is empty. The following example response shows a `COMPLETE` insurance discovery check. Stedi found one instance of potential matching coverage for the patient, Jane Doe. Insurance discovery checks only return active coverage for the provided date-of-service range, so old plans with expired coverage aren't in the results. Information about the potential match is available in the `items` array. - The `payer` is Aetna. Payer names and IDs aren't normalized, so you may need to handle matching these results to Stedi's Payer Network or your own internal payer list. - The patient in the request, Jane, is a dependent on the Aetna plan because her demographic information appears in the `dependent` object in the response. The dependent's last name is slightly different from the patient's last name in the insurance discovery request. However, all the other demographic details in the dependent object - first name, date of birth, address - match the patient from the request. The two-part last name, Smith Doe, appears to be the complete version of the last name in the request, Doe. Based on this information, you can confirm that this is active coverage for the patient. Visit [Verify the match](#verify-the-match) for the full set of checks to run on every coverage in the response. - The `benefitsInformation` object (truncated to keep this example concise) contains the patient's benefits details. These are the same benefits details an eligibility check returns, so you can interpret them the same way. In the following example, the patient has active medical coverage under their health plan for the service dates in the request. Visit [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits) to learn more about interpreting the benefits information in the insurance discovery check response. {/* schema:InsuranceDiscoveryCheckResponseContent */} {/* replace:// truncated for brevity: */} ```json Insurance discovery check completed { "coveragesFound": 1, "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "items": [ { "provider": { "providerName": "THE DOCTORS OFFICE", "entityType": "Non-Person Entity", "npi": "1999999984" }, "subscriber": { "memberId": "J9606211996", "firstName": "JOHN", "lastName": "DOE", "groupNumber": "012345607890008", "groupDescription": "SAMPLE HEALTH GROUP", "insuredIndicator": "Y" }, "dependent": { "firstName": "JANE", "lastName": "SMITH DOE", "gender": "F", "dateOfBirth": "20010925", "planNumber": "0123654", "relationToSubscriber": "Child", "relationToSubscriberCode": "19", "address": { "address1": "1 MAIN ST", "address2": "UNIT 1", "city": "ANYTOWN", "state": "MO", "postalCode": "12341" } }, "payer": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "lastName": "Aetna", "name": "Aetna", "payorIdentification": "100003" }, "planInformation": { "planNumber": "0123654" }, "planDateInformation": { "planBegin": "20250101", "eligibilityBegin": "20250101", "service": "20250327" }, "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "PS", "insuranceType": "Point of Service (POS)", "planCoverage": "Aetna Choice POS II", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" }, // truncated for brevity { "code": "W", "name": "Other Source of Data", "benefitsRelatedEntities": [ { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "entityName": "AETNA", "address": { "address1": "PO BOX 981106", "city": "EL PASO", "state": "TX", "postalCode": "79998" } } ] } ], "confidence": { "level": "REVIEW_NEEDED" } } ], "meta": { "applicationMode": "production", "traceId": "1-67e5a730-75011daa6caebf3c6595bf7c" }, "status": "COMPLETE" } ``` #### Error [#error] Stedi returns HTTP `502` with an `ERROR` status when it wasn't able to complete the insurance discovery check. The `items` array is empty. The following example response shows an `ERROR` insurance discovery check. {/* schema:InsuranceDiscoveryCheckResponseContent */} ```json Insurance discovery check failed { "coveragesFound": 0, "discoveryId": "12345678-abcd-4321-efgh-987654321abc", "items": [], "meta": { "applicationMode": "production", "traceId": "1-abcdef12-123456789abcdef123456789" }, "status": "ERROR" } ``` ### Retrieve results asynchronously [#retrieve-results-asynchronously] Use the `discoveryId` from a `PENDING` response to retrieve the results from the [Insurance Discovery Check Results](/healthcare/api-reference/get-insurance-discovery-results) endpoint. You can begin polling immediately after receiving the `PENDING` status response from the synchronous endpoint. Like the synchronous endpoint, the Insurance Discovery Check Results endpoint can take up to 120 seconds to return a response. It's unlikely for the insurance discovery process to take more than a few minutes, so it's rare to have to poll the asynchronous endpoint more than once. However, if you receive a `PENDING` status, you can poll the endpoint immediately again, and continue this polling process until the status changes to `COMPLETE` or `ERROR`. Stedi stores insurance discovery results for 30 days. After that, the results are no longer available from this endpoint or in the Stedi portal. ### Concurrency limit [#concurrency-limit] Visit [Concurrency limits](/healthcare/api-reference#concurrency-limits) for more information. ### Recommended API clients [#recommended-api-clients] You may want to use an API client to make testing and debugging easier. We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead. ## No matches [#no-matches] Insurance discovery checks can return zero matches for a patient even when they have active coverage. ```json { "coveragesFound": 0, "discoveryId": "0197a79a-ed75-77c3-af58-8ece597ea0be", "items": [], "meta": { "applicationMode": "production", "traceId": "1-685c0f14-1b559a954f0bd0127110d161" }, "status": "COMPLETE" } ``` Common reasons for zero matches include: - Recommended demographic data, like state or SSN, was missing from the request. Provide as much [patient demographic information](#required-patient-information) as possible to increase the chances of finding matching coverage. - The payer with the patient's active coverage doesn't respond to eligibility requests without certain patient demographic details. Provide as much [patient demographic information](#required-patient-information) as possible to increase the chances of finding matching coverage. - The patient's data doesn't exactly match what the payer has on file. For example, the patient demographics in the request don't match the patient's legal name or date of birth. - The payer that the patient has doesn't support real-time eligibility checks, which makes it impossible for Stedi to determine coverage. - The patient has coverage with a payer that supports eligibility checks, but Stedi's insurance discovery system couldn't find the payer. We're always looking for feedback. If you know the patient has coverage and determined the payer through other means, reach out to Stedi's support team for further investigation. ## Determine which matches to use [#determine-which-matches-to-use] An insurance discovery check can return multiple coverages. Stedi returns all the coverage it finds for the patient without filtering the results, so more than one item in the `items` array doesn't necessarily mean the patient has more than one active plan. A response can include several coverages for the following reasons: - Some national payers return every plan they have on file, including inactive coverage. - Payers return coverage types you didn't request, so a check scoped to one service type code can come back with benefits for others. - Checks match on demographic data, so some items aren't your patient. For every coverage in the response, [verify the match](#verify-the-match) and [confirm active coverage on your date of service](#confirm-active-coverage-on-your-date-of-service). When there is more than one active coverage for the patient, you need to [determine the billing order](#handle-multiple-active-coverages) (primacy) before you submit a claim. ### Verify the match [#verify-the-match] For each coverage, always verify that the returned subscriber or dependent information matches the demographic information you submitted for the patient. Pay special attention to: - **Name matching:** The patient's name must match, though slight variations (like hyphenated or two-part last names) may appear. - **Date of birth:** Must match exactly. - **Address:** Must match or be a previous address. - **Other details you collected at intake:** For example, the patient's gender, ZIP Code, or state. When the patient is a dependent, their details are in the `dependent` object and the policyholder's details are in the `subscriber` object. Their last names don't always match. The `confidence` object doesn't indicate which coverage to use. Stedi sets `confidence.level` to `REVIEW_NEEDED` for every coverage it returns, so you must compare the patient's demographic details yourself to determine which coverage is a match. ### Confirm active coverage on your date of service [#confirm-active-coverage-on-your-date-of-service] After you [verify the match](#verify-the-match), confirm that the coverage is active on your date of service. Start by comparing the dates in the `planDateInformation` object to your date of service. The patient likely wasn't covered if your date of service falls after the earliest ending `plan`, `eligibility`, `planEnd`, `eligibilityEnd`, `policyEffective`, or `policyExpiration` value. For an appeal or a write-off, use that end date. These dates apply to all the benefits in the patient's plan unless certain benefits have their own eligibility dates. Visit [When is the patient eligible for benefits?](/healthcare/eligibility-active-coverage-benefits#when-is-the-patient-eligible-for-benefits) for complete details. In the following example, the plan ended on December 31, 2024, so the patient didn't have coverage for dates of service in 2025. {/* schema:PlanDateInformation:unwrap */} ```json "planDateInformation": { "planBegin": "20240101", "planEnd": "20241231", "eligibilityBegin": "20240102" } ``` Then check the `benefitsInformation` objects in the response. - **Status codes**: Codes `1` - `5` indicate active coverage. Codes `6` - `8` indicate inactive coverage, which means that plan has ended - the patient may still have active coverage under a different plan in the same response. Codes `5`, `7`, and `8` indicate a pending investigation or eligibility update on the payer's side, so verify the coverage with the payer before you submit a claim. - **Service types**: Check `serviceTypeCodes` to confirm the coverage applies to the services you plan to bill. - **Implied coverage**: Payers don't always send an explicit status for every service type. However, when the response includes co-payments, deductibles, or other benefits information for a service type, you can assume the patient has active coverage for it. Visit [Active and inactive coverage](/healthcare/eligibility-active-coverage-benefits#active-and-inactive-coverage) for complete details. The following examples show active and inactive coverage for service type code `30` (Health Benefit Plan Coverage). {/* schema:BenefitsInformation */} ```json { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "planCoverage": "Gold Plan HMO" } ``` {/* schema:BenefitsInformation */} ```json { "code": "6", "name": "Inactive", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" } ``` When a coverage passes these checks, you can use its benefits details to determine the patient's eligibility for services. You don't need to run a follow-up eligibility check since the insurance discovery response includes the same benefits information. ## Handle multiple active coverages [#handle-multiple-active-coverages] For each coverage Stedi returns, [verify the match](#verify-the-match) and [confirm active coverage](#confirm-active-coverage-on-your-date-of-service) on your date of service. When more than one coverage is active for your patient, you need to know which payer pays first (primacy) before you submit a claim. Start by identifying every payer in the response, then determine the order. ### Identify payers [#identify-payers] Insurance discovery checks aren't guaranteed to return every active plan, so treat the payers in the response as a starting point rather than a complete list. Each item's `payer` object identifies the payer for that coverage, including the `payorIdentification` you use to submit claims. {/* schema:DiscoveryPayer:unwrap */} ```json "payer": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "lastName": "Aetna", "name": "Aetna", "payorIdentification": "100003" } ``` Check for `benefitsInformation` objects with `code` = `R` (Other or Additional Payor). These objects are where payers report other coverage they know about for the patient, in the `benefitsRelatedEntities` array. For example, Medicare coverage often names the patient's supplemental plan, and the supplemental plan often names Medicare. You can send an [eligibility check](/healthcare/send-eligibility-checks) to additional payers in `benefitsRelatedEntities`. The response confirms the coverage and contains a member ID you can use to submit claims. The following example shows a `benefitsInformation` object that names an additional payer. {/* schema:BenefitsInformation */} ```json { "code": "R", "name": "Other or Additional Payor", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "benefitsRelatedEntities": [ { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "entityName": "AETNA", "entityIdentification": "PI", "entityIdentificationValue": "60054" } ] } ``` If `benefitsRelatedEntities` is empty and you later receive a claim denial citing coordination of benefits (COB): - Check the `subscriber` and `dependent` objects in the response for demographic details you didn't submit, such as a complete address. - Run another insurance discovery check with those details. This can surface coverage the first check didn't return. ### Determine primacy for billing [#determine-primacy-for-billing] Once you've identified all the payers, you need to know the billing order (primacy). Insurance discovery checks don't indicate primacy. You can establish primacy from a prior claim denial or by running a coordination of benefits (COB) check. **Prior claim denial** When you're sure the patient has only two active coverages and one of those payers has already denied a claim citing COB, the other payer is primary. For example, a check returns active coverage with both Aetna and Cigna, and Aetna denied your claim citing COB. In this case, Cigna is primary: 1. Resubmit the claim to Cigna and wait for adjudication. 2. Bill Aetna with a secondary claim built from Cigna's 835 Electronic Remittance Advice (ERA). Use the payment and adjustment amounts exactly as the ERA reports them. Visit [Submit to a secondary or tertiary payer](/healthcare/submit-professional-claims#submit-to-a-secondary-or-tertiary-payer) for the properties to include on the claim. **COB check** If you're not sure about primacy, run a coordination of benefits (COB) check. COB checks determine primacy across a member's known coverage and report the billing order in the response. A COB check can also return payers that the insurance discovery check didn't. Always set the billing order from a COB response, not from an insurance discovery or eligibility response. Original Medicare isn't part of the COB database, though many Medicare Advantage plans are. When a patient has Original Medicare, a COB check can't determine the billing order, so you must apply the primacy rules yourself. Visit [Primacy rules](/healthcare/cob-response#primacy-rules) for the guidelines Stedi follows, including how Medicare coordinates with other plans. Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for instructions on running a COB check. # Overview Source: https://www.stedi.com/docs/healthcare/integrated-account-overview Integrated accounts are Stedi accounts that your providers create and link to your product through a Stedi app. They're a great option when you want to: - Extend your product with the features in the Stedi portal. - Simplify multi-tenant workflows by scoping credentials and activity per provider or practice. ## How integrated accounts work [#how-integrated-accounts-work] Instead of using a single Stedi account to manage transactions and enrollments across all providers, you can set up an integrated account for each provider or practice: 1. You register an [OAuth app](/healthcare/oauth-apps) in the Stedi portal and share its install link, or embed the install flow in your product. 2. A provider clicks the link and creates their production Stedi account. 3. The provider reviews what your app can access and authorizes it. Your app receives its own credentials, scoped to that account. 4. Your app calls Stedi APIs to set up what it needs in the account, such as creating event destinations, creating SFTP users, running eligibility checks, and managing enrollments. 5. Providers log into their integrated accounts to access the Stedi portal, which acts as a co-branded extension of your product. For example, an Electronic Health Record (EHR) system can build eligibility checks and claim submission directly into its product UI using Stedi's APIs and SFTP. With integrated accounts, their providers can also log into the Stedi portal to submit enrollments, review submitted claims, perform claim status checks, resubmit claims, and more. ## Why use integrated accounts? [#why-use-integrated-accounts] Integrated accounts have several benefits: - **Extended functionality:** Offer providers additional features through the Stedi portal. Stedi apps provide this access as a co-branded experience, and providers automatically get new features as soon as we release them. - **Lower development effort:** Focus on building UIs for the workflows you care about. Avoid building and maintaining custom routing, tenancy, and attribution logic for claims workflows. - **Built-in tenancy:** Integrated accounts scope API and SFTP credentials to each provider or practice, so you can attribute, monitor, and isolate enrollments and transactions. This model also makes it easier to attribute usage and billing to a specific provider or practice. - **Support access:** Your support team can log into integrated accounts to troubleshoot issues directly. ## Stedi OAuth apps [#stedi-oauth-apps] Stedi apps are integrations between Stedi and your system. Customers install your app from an install link that you share directly or embed in your product. Once your app is live, you can also choose to list it on the Stedi Apps page. Visit [OAuth apps](/healthcare/oauth-apps) for how to build an app, what it can do in a customer's account, and a link to the full integration guide. Stedi still supports [legacy apps](/healthcare/integrated-account-setup-legacy) that authenticate with API keys. If you're building new apps, you must use OAuth. ## Provider docs [#provider-docs] To install your app, providers can follow [Install and approve your vendor's app](https://www.stedi.com/docs/providers/providers-account-setup#install-and-approve-your-vendors-app). Once they've installed it, you can share Stedi's [provider docs](https://www.stedi.com/docs/providers) to help them get started, or use them as a starting point for your own documentation. They cover: - Managing a Stedi account - Running eligibility checks - Submitting and managing claims - Accessing 277CA claim acknowledgments and 835 Electronic Remittance Advice (ERAs) - Running claim status checks - Other Stedi portal features # Set up integrated accounts with legacy apps Source: https://www.stedi.com/docs/healthcare/integrated-account-setup-legacy Apps that authenticate with API keys are a legacy feature. Stedi continues to support them, and you can keep using them in production. You must use [OAuth](/healthcare/oauth-apps) for new apps. Integrated accounts allow your providers to create their own Stedi accounts that act as a co-branded extension of your product's functionality. ## Step 1: Publish your app [#step-1-publish-your-app] Your providers install a Stedi app to link their Stedi account to your product. [Contact us](https://www.stedi.com/contact) to discuss adding your business to the Stedi Apps page. The process is simple and typically takes 1-2 days: 1. Meet with our team to align on how your customers' accounts map to Stedi organizations. During this process, you can request to automatically add one or more support users (members) with a [Developer role](/healthcare/account-settings#assign-member-roles) to accounts that install your app. This allows your support team to troubleshoot issues directly within customer accounts and help with implementation. 2. Confirm that existing services contracts and a partner or platform integration agreement are in place. 3. Supply your company logo, URL, support email, and description. 4. We publish your app listing to the directory and make it discoverable to customers. Once we publish your app, your providers can install it from within their Stedi accounts. ## Step 2: Your providers create Stedi accounts [#step-2-your-providers-create-stedi-accounts] Once we list your app in the directory, Stedi generates a custom signup link for your providers. The link takes providers through a signup flow that creates an integrated account, a production Stedi account. Stedi brands the signup page with your app's name and logo. Providers must install your app (Step 3) to complete the integration. To get the signup link for your Stedi app, contact us in your Slack or Microsoft Teams channel. You can also email us or use our [contact form](https://www.stedi.com/contact). Providers must: 1. Go to the custom signup link for your app. 2. Follow the signup process, which includes: - Filling out the signup form. - Setting up Multi-Factor Authentication (MFA). - Naming their Stedi account. - Agreeing to a Business Associate Agreement (BAA). After completing these steps, Stedi begins provisioning the account. This process takes approximately 20-30 minutes, and your providers must wait until it's complete before proceeding to Step 3. ## Step 3: Your providers install your app [#step-3-your-providers-install-your-app] Providers can install your app once their Stedi accounts are fully provisioned (20-30 minutes). To install your app, providers must: 1. In the side navigation, click **Apps** to go to the [Apps page](https://portal.stedi.com/app/settings/developer/apps). 2. Find and click on your app from the available list. 3. Click **Install** to begin the installation process. 4. Read the installation details and then click **Confirm and install**. This action sends an email invitation to the support email you specified for your Stedi app. Stedi displays new API and SFTP credentials that the provider can copy and paste into your system to complete the integration. We generally recommend that providers ignore these credentials during installation - you must generate and manage credentials for them in Step 4. 5. (Optional) Check the box next to **I've added these details to my [Your Company Name] account** and click **Done**. You'll get invited to the integrated account as a support regardless of whether the provider completes this final step. The app is now installed, and the provider can start using the functionality within Stedi's portal. ## Step 4: You configure each integrated account [#step-4-you-configure-each-integrated-account] After your providers install your app, you can use the Stedi portal to manage each integrated account. ### Accept email invitation [#accept-email-invitation] Stedi automatically invites the specified support email to the integrated account when providers install your app. Accept the email invitation and log in to complete the setup. This process also allows your support team to troubleshoot issues directly as needed. ### Generate API or SFTP credentials [#generate-api-or-sftp-credentials] You can generate credentials manually at any time within each integrated account. You can also revoke or rotate credentials as needed, without reinstalling the app. To generate credentials: 1. Log in to the integrated account using your support email. 2. In the side navigation, click **Apps**. Stedi opens a side panel with a list of installed apps. 3. Click your app to open the app settings page. 4. Generate new API or SFTP credentials. ### Create event destinations to monitor processed transactions [#create-event-destinations-to-monitor-processed-transactions] We strongly recommend setting up event destinations in each integrated account to monitor claim processing events. These events contain the information you need to retrieve 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA) responses through Stedi APIs. They can also help you monitor your claims pipeline when submitting claims through Stedi SFTP. To configure event destinations: 1. Log in to the integrated account using your support email. 2. In the side navigation, click **Event destinations**. Alternatively, go directly to the [Event destinations page](https://portal.stedi.com/app/settings/developer/event-destinations) in your developer settings. 3. Create a new event destination with your webhook URL and the events you want to receive. Visit [Configure event destinations](/healthcare/event-destinations-configure) for detailed setup instructions and [Events](/healthcare/event-destinations-event-types) to see which events to monitor for your use case. ## Next steps [#next-steps] We maintain a separate set of [Provider docs](https://www.stedi.com/docs/providers) that you can share with your providers to help them get started with Stedi. You can also use our docs as a starting point for your own documentation about how to use Stedi. The docs include information on: - Managing a Stedi account - Running eligibility checks - Submitting and managing claims - Accessing 277CA claim acknowledgments and 835 Electronic Remittance Advice (ERAs) - Running claim status checks - Other helpful Stedi UI features You may want to refer to the following resources as you build your integration with Stedi: - [Developer guides](https://www.stedi.com/docs/healthcare) - [API reference](https://www.stedi.com/docs/healthcare/api-reference) # Overview Source: https://www.stedi.com/docs/healthcare/intro-eligibility-checks An eligibility check is the process of verifying whether a patient has coverage for specific medical benefits under their health insurance plan. This process allows patients and healthcare providers to determine a patient's financial responsibilities for medical services. You can send either real-time or batch eligibility checks through Stedi. With real-time checks, you receive the response from the payer in seconds. With batch checks, you can submit up to 10,000 eligibility checks in a single request for Stedi to process asynchronously. Eligibility checks verify coverage with a specific payer. If you don't know the payer, you can perform an [insurance discovery check](/healthcare/insurance-discovery) instead to find a patient's coverage using their demographic data. ## Real-time eligibility checks [#real-time-eligibility-checks] Real-time eligibility checks are ideal for in-person patient visits, telehealth appointments, and other scenarios where you need immediate information about a patient's coverage. We recommend always starting with real-time checks when integrating with a new payer. This approach allows you to quickly test and refine your pipeline through fast feedback loops. Once you're comfortable with real-time checks, you may also want to start sending asynchronous batch checks to perform periodic refreshes for all or a subset of patients. Stedi supports sending real-time eligibility checks to payers, in either JSON or X12 EDI format. You can submit requests programmatically through the API or manually through the Stedi portal. The portal includes [Agentic Discovery](/healthcare/send-eligibility-checks-ui#agentic-discovery-recommended) to help you troubleshoot issues and find coverage automatically. Stedi routes requests to the payer using the most reliable connection. Stedi receives payer responses in X12 EDI and transforms them into JSON to make them easier to ingest into your business systems. Stedi returns the payer's synchronous response. It contains details about a patient's medical coverage, including the start and end date of the coverage, covered benefits and services, copayments, deductibles, and out-of-pocket maximums. Learn more about [Real-time eligibility checks](/healthcare/send-eligibility-checks). ## Batch eligibility checks [#batch-eligibility-checks] Batch eligibility checks are a great option as your volume grows. Stedi handles complexity like queuing and retries according to established best practices, so you don't have to build this logic yourself. We recommend using batch checks for bulk workflows that aren't time sensitive, including: - Monthly or weekly coverage refreshes - Upcoming appointments - Sets of thousands or millions of checks that can run in the background However, batch checks have a longer feedback cycle than real-time checks because you don't receive the payer's response immediately. That's why we strongly recommend starting with [real-time checks](/healthcare/api-reference/post-healthcare-eligibility-legacy) when integrating with a new payer or working with eligibility checks for the first time. This approach allows you to ensure that your pipeline is working smoothly before you begin staging batch checks. You can submit batch eligibility checks manually by uploading CSV files to the Stedi portal or programmatically by sending a request to the [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint. Each batch can contain up to 10,000 eligibility checks. Stedi processes these batch checks asynchronously, implementing best practices to avoid payer throttling. Stedi routes requests to the payer using the most reliable connection. The API's synchronous response contains a `batchId` that you can use to retrieve the results of the batch checks using the [Poll Batch Eligibility Checks](/healthcare/api-reference/get-healthcare-polling-eligibility) endpoint. You can also review the results of batch eligibility checks from the [Eligibility check batches page](https://portal.stedi.com/app/healthcare/checks/batch) in the Stedi portal. Learn more about [Batch eligibility checks](/healthcare/batch-refresh-eligibility-checks). ## Patient benefits [#patient-benefits] The payer's 271 response includes detailed information about the patient's coverage and benefits. You can use this information to determine: - whether the patient has active coverage with the health plan. - whether a patient's health plan covers the requested services. - patient responsibility amounts, such as co-pays and deductibles. - whether prior authorization is required for specific services. You can review this benefits information in multiple ways, depending on your use case. | Method | Description | Docs | | ------------------- | -------------------------------------------------------- | ----------------------------------------------------------------- | | **API responses** | Lossless responses in JSON or X12 EDI | [API responses](/healthcare/eligibility-active-coverage-benefits) | | **Stedi portal** | A user-friendly, filterable table | [Stedi portal UI](/healthcare/eligibility-portal-benefits-view) | | **Eligibility PDF** | A PDF that you can download or retrieve programmatically | [Eligibility PDF](/healthcare/eligibility-pdf) | ## X12 HIPAA format [#x12-hipaa-format] The Health Insurance Portability and Accountability Act (HIPAA) mandates that eligibility checks be submitted in a standardized format: X12 HIPAA. X12 HIPAA is a type of Electronic Data Interchange (EDI), a data format developed in the 1970s to allow businesses to exchange documents electronically. While some healthcare institutions can submit eligibility checks directly in X12 HIPAA, many of today's software applications are built to use more modern data formats like JSON. That's why Stedi offers two types of APIs for eligibility checks: one that accepts JSON and automatically converts it to X12 HIPAA behind the scenes, and another that accepts X12 HIPAA directly. ## Billing for eligibility checks [#billing-for-eligibility-checks] Transactions are billable at the usage rates specified in your contract unless they fall into one of the following non-billable categories: 1. All eligibility checks you send in [Test Mode](/healthcare/test-mode). 1. All eligibility checks that return `AAA` = `42` (Unable to Respond at Current Time) or `AAA` = `80` (No Response Received - Transaction Terminated) errors, regardless of the follow-up action. 1. All eligibility checks that return `AAA` = `79` errors, which indicate there was a problem connecting to this payer. 1. All API calls that return `4xx` or `5xx` errors. # Overview Source: https://www.stedi.com/docs/healthcare/intro-to-claim-submission Submit claims and claim attachments to payers through Stedi's API, SFTP, or the Stedi portal. A claim is a request for payment submitted to an insurance company or health plan. It details the medical services rendered to a patient, including information about the diagnosis, treatment, and any procedures performed. Payers use the claim to determine the reimbursement amount that the submitter (typically a medical provider) receives. Payers sometimes require additional documentation to process claims, such as medical records, treatment plans, radiographs, photographs, itemized bills, and letters from providers. These documents are submitted as claim attachments. You can submit claims and claim attachments through Stedi APIs, SFTP, and the Stedi portal. ## API claim submission [#api-claim-submission] You can submit claims and attachments to Stedi APIs in either JSON or X12 EDI format. We recommend this approach when you want to submit claims and attachments programmatically without dealing with the complexities of the X12 EDI format. Stedi supports sending the following transactions to payers: - 837P professional claim | [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) | [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) | [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) - 837I institutional claim | [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) | [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12) - 837D dental claim | [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims) | [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12) - 275 attachments | [275 JSON](/healthcare/api-reference/post-healthcare-create-claim-attachment) | [275 Raw X12](/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12) Stedi translates JSON requests into X12 EDI and validates the data using our growing library of [claim edits](/healthcare/claim-edits-and-repairs) to ensure claims comply with HIPAA and the payer's specifications. Stedi routes requests to the payer. Stedi receives payer responses in X12 EDI and transforms them into JSON to make them easier to ingest into your business systems. You can either poll or use event destinations to discover new 277CA claim acknowledgments and 835 Electronic Remittance Advice (ERAs). Then, you can use Stedi APIs to retrieve these responses in JSON format. Learn more about API submission for [professional](/healthcare/submit-professional-claims), [institutional](/healthcare/submit-institutional-claims), and [dental](/healthcare/submit-dental-claims) claims, as well as [unsolicited claim attachments](/healthcare/submit-claim-attachments). ## SFTP claim submission [#sftp-claim-submission] We recommend Stedi SFTP when you have an existing system that generates X12 EDI files, and you want to send them through Stedi without completing an API integration. You can create both test and production SFTP users. Test users can only send claims to Stedi's test clearinghouse, which helps ensure you never accidentally send test claims to payers while you're getting up and running. Connect to Stedi's server and drop compliant X12 EDI professional, institutional, or dental claim files, as well as unsolicited 275 attachments, into the `to-stedi` directory. Stedi automatically validates claims using our growing library of [claim edits](/healthcare/claim-edits-and-repairs) to ensure they comply with HIPAA and the payer's specifications. Then, Stedi routes claims to the test or production clearinghouse. Stedi places claim responses - 277CA claim acknowledgments and 835 ERAs - into the `from-stedi` directory in X12 EDI format. You can retrieve these responses from the directory at your preferred cadence. Learn more about [SFTP claim and attachment submission](/healthcare/submit-claims-sftp-connection). ## X12 HIPAA format [#x12-hipaa-format] The Health Insurance Portability and Accountability Act (HIPAA) mandates that claims and claim attachments be submitted in a standardized format: X12 HIPAA. X12 HIPAA is a type of Electronic Data Interchange (EDI), a data format developed in the 1970s to allow businesses to exchange documents electronically. While some healthcare institutions can submit claims and claim attachments directly in X12 HIPAA, many of today's software applications are built to use more modern data formats like JSON. That's why Stedi offers two types of APIs for claims processing: one that accepts JSON and automatically converts it to X12 HIPAA behind the scenes, and another that accepts X12 HIPAA directly. ## Billing for 837 claims and 275 attachments [#billing-for-837-claims-and-275-attachments] Transactions are billable at the usage rates specified in your contract, except for API calls that return 4xx or 5xx errors. For example, you won't be charged when a request fails because the payer isn't supported - in this case, Stedi returns a `400` HTTP status code. # Manage lockboxes and mail Source: https://www.stedi.com/docs/healthcare/lockbox-manage After you [set up Stedi Lockbox](/healthcare/lockbox-setup), you can review your lockboxes and every item of mail they receive in the Stedi portal. You can also track each check from deposit to payout. ## Review your lockboxes [#review-your-lockboxes] The [Lockboxes page](https://portal.stedi.com/app/healthcare/lockboxes) lists each lockbox with its date created, status, recipient name, address, and description. Click a lockbox to review its mailing address and billing entity. ### Lockbox statuses [#lockbox-statuses] A lockbox can have one of the following statuses in Stedi. {/* prettier-ignore-start */} | Status | Description | | --- | --- | | **Active** | The lockbox can receive mail. | | **Canceled** | The lockbox is permanently canceled and can no longer receive mail. You can create a new lockbox for its billing entity. | {/* prettier-ignore-end */} You can't edit or cancel a lockbox in the Stedi portal. [Contact Stedi Support](https://www.stedi.com/contact) for help. ## Review mail [#review-mail] The [Mail inbox](https://portal.stedi.com/app/healthcare/lockboxes/mail) lists every mail item your lockboxes receive, with the most recent first. Each row includes the following information. {/* prettier-ignore-start */} | Column | Description | | --- | --- | | **Date received** | When the mail arrived at the lockbox's processing location. | | **From** | The sender's name from the envelope, such as the payer. | | **To** | The name the mail is addressed to. This can differ from the lockbox's recipient name. | | **Recipient** | The recipient name of the lockbox that received the mail. | | **Status** | Whether Stedi has processed the mail item. Visit [Mail item statuses](#mail-item-statuses). | | **Contains** | Shows **Contains check** when the mail item includes a check. | | **Summary** | A short description of the mail's contents, based on the scan. | {/* prettier-ignore-end */} To narrow the list, filter by **Billing entity** or **Recipient**. To review the mail for one lockbox, you can also open the lockbox from the [Lockboxes page](https://portal.stedi.com/app/healthcare/lockboxes) and click **View all mail sent to this lockbox**. ### Mail item statuses [#mail-item-statuses] A mail item can have one of the following statuses in Stedi. {/* prettier-ignore-start */} | Status | Description | | --- | --- | | **Pending** | Stedi received the mail item but hasn't processed it yet. | | **Processed** | Stedi processed the mail item. | {/* prettier-ignore-end */} ### Review mail item details [#review-mail-item-details] Click a mail item in the [Mail inbox](https://portal.stedi.com/app/healthcare/lockboxes/mail) to review its details: - **Overview:** The summary, sender, status, and date. - **Lockbox:** The recipient name and address of the lockbox that received the mail. - **Billing entity:** The billing entity for the lockbox. - **File:** A preview of the scanned PDF. Click **Previous** or **Next** to move through the mail items in your current list. ### Download a mail item PDF [#download-a-mail-item-pdf] To download the scan of a mail item: 1. Go to the [Mail inbox](https://portal.stedi.com/app/healthcare/lockboxes/mail) and click the mail item. 2. Click **Download** in the **File** section. ## Track check deposits [#track-check-deposits] When a mail item contains a check, Stedi deposits the check into the billing entity's Stedi Treasury account. The mail item's details page includes a **Status** section that tracks the check: - **Deposit:** The check deposit's status and amount. - **Payment:** The status and date of the Treasury payment for the check. - **Payout:** The status and date of the payout to your external bank account. A section shows **Not yet created** until Stedi creates the payment or payout. Click **View payment** or **View payout** to go to the payment's or payout's details page in Stedi Treasury. To learn more about these pages, visit [Payments](/healthcare/treasury-manage-payments#payments) and [Payouts](/healthcare/treasury-manage-payments#payouts) in Manage payments. ### Check deposit statuses [#check-deposit-statuses] Each check deposit status corresponds to a status for its Treasury payment. {/* prettier-ignore-start */} | Deposit status | Payment status | Description | | --- | --- | --- | | **Pending** | **Pending** | Stedi is processing the check deposit. | | **Holding** | **Pending** | Stedi's partner bank is holding the funds before releasing them. | | **Settled** | **Received** | The funds settled in your Stedi Treasury account. Stedi starts the payout to your external bank account. | | **Rejected** | **Failed** | The bank rejected the check. | | **Returned** | **Failed** | The payer's bank returned the check. | {/* prettier-ignore-end */} ### Find check payments in Treasury [#find-check-payments-in-treasury] Check deposits appear on the [Payments page](https://portal.stedi.com/app/healthcare/payments) alongside Electronic Funds Transfer (EFT) payments. A mail icon identifies payments from paper checks. To find a specific check, filter by **Check number**. Click a check payment to review its details. The **Mail** section shows the check number and the mail item's summary, sender, status, and date. Click **View mail item** to go to the scanned mail. # Stedi Lockbox Source: https://www.stedi.com/docs/healthcare/lockbox-overview Receive paper checks and remittances through Stedi Lockbox. Stedi scans every item of mail and deposits checks through Stedi Treasury. Many payers still mail paper checks and paper remittances instead of sending Electronic Funds Transfers (EFTs) and 835 Electronic Remittance Advice (ERAs). Paper remittances include Explanations of Payment (EOPs) from commercial payers and Standard Paper Remittances (SPRs) from Medicare and Medicaid. Processing this mail by hand means opening envelopes, matching checks to remittances, and depositing each check at the bank. Stedi Lockbox automates this process. Stedi gives each billing entity a dedicated mailing address, called a lockbox. Stedi scans every item of mail that arrives at the lockbox and deposits paper checks into the billing entity's [Stedi Treasury](/healthcare/treasury-overview) account automatically. Stedi Lockbox is available to every account with Stedi Treasury. [Contact Stedi Support](https://www.stedi.com/contact) to request access to Stedi Treasury. ## How it works [#how-it-works] Stedi deposits checks into a Stedi Treasury account, so you must [set up Treasury](/healthcare/treasury-setup) before you create a lockbox. Create a lockbox for each billing entity in the Stedi portal. Stedi assigns it a dedicated mailing address. Learn more in [Set up Stedi Lockbox](/healthcare/lockbox-setup). Put the lockbox address in the pay-to address on your claims. Each item of mail appears in the Stedi portal's **Mail inbox** with a scanned PDF that you can review and download. When a mail item contains a check, Stedi deposits it into the billing entity's Treasury account. The check appears on the **Payments** page alongside EFT payments, and Stedi pays it out to your external bank account after the funds settle. Learn more in [Manage lockboxes and mail](/healthcare/lockbox-manage). ## Checks [#checks] When a lockbox receives a paper check, Stedi deposits it into the Treasury account for the lockbox's billing entity. You don't need to take any action. Check deposits take longer to settle than Electronic Funds Transfers (EFTs) because Stedi's partner bank holds the funds for a period before releasing them. Stedi starts the payout to your external bank account after the funds settle, the same way it does for EFTs. ## Paper remittances and other mail [#paper-remittances-and-other-mail] Stedi scans every item that arrives at the lockbox, including Explanations of Payment (EOPs), Standard Paper Remittances (SPRs), and letters from payers. You can review and download each scan in the Stedi portal. Stedi doesn't take any action on mail that isn't a check. For example, if a payer mails a request for medical records, you review the scan and respond to the payer. Stedi keeps the scan of every mail item, so you can review and download it at any time. ## Availability and pricing [#availability-and-pricing] Stedi Lockbox is available in production for every account with Stedi Treasury. It isn't available in test mode. For pricing, visit [Stedi pricing](https://www.stedi.com/pricing). Check deposits also incur Stedi Treasury payment processing fees. ## Next steps [#next-steps] Create a lockbox for a billing entity and add its address to your claims. # Set up Stedi Lockbox Source: https://www.stedi.com/docs/healthcare/lockbox-setup To start receiving mail through Stedi Lockbox, you create a lockbox for a billing entity, then direct payers to send mail to it. ## Before you begin [#before-you-begin] Before you create a lockbox, make sure you have the following: - **Stedi Treasury:** Stedi deposits checks from the lockbox into the billing entity's Treasury account. You must [create a billing entity](/healthcare/treasury-setup#1-create-a-billing-entity) in Stedi Treasury before you create its lockbox. [Contact Stedi Support](https://www.stedi.com/contact) to request access to Stedi Treasury. - **Production mode:** Stedi Lockbox isn't available in test mode. Toggle **Test mode** to **OFF** in the side navigation. ## Create a lockbox [#create-a-lockbox] You can create one lockbox for each billing entity. 1. Go to the [Lockboxes page](https://portal.stedi.com/app/healthcare/lockboxes) and click **New lockbox**. 2. Under **Billing entity**, select the billing entity that receives the checks sent to this lockbox. 3. Under **Address**, select the location where Stedi processes your mail: **Dallas, TX**, **New York, NY**, or **San Francisco, CA**. Stedi processes mail the same day at all locations. Choosing the location closest to where your payers mail from can lead to faster processing. 4. Under **Recipient name**, set the name that payers write on the mail. By default, the **Same as billing entity name** checkbox is selected, and the recipient name is the billing entity's name. To use a different name, clear the checkbox, then enter the name in the **Recipient name** field. 5. Read and accept the [Stedi Lockbox Mail Authorization](https://legal.stedi.com/legal/lockbox-mail-authorization). By creating the lockbox, you certify that you're authorized to act on behalf of the billing entity. 6. Click **Create lockbox**. Stedi creates the lockbox and opens its details page. The **Mailing address** section shows the lockbox address to use as the pay-to address on your claims and to give payers. Click the copy button to copy the full address, including the recipient name. If the address shows **Pending** on the [Lockboxes page](https://portal.stedi.com/app/healthcare/lockboxes), Stedi is still setting it up. The address appears when it's ready. ## Add the lockbox address to claims [#add-the-lockbox-address-to-claims] To have payers send paper checks and other claims-related mail to your lockbox, put the lockbox address in the claim's pay-to address. Payers use the pay-to address for payments and mail about the claim. You can set the pay-to address in the following locations: - **837P JSON (Legacy):** [`payToAddress`](/healthcare/api-reference/post-healthcare-claims#body.payToAddress) - **837D JSON:** [`payToAddress`](/healthcare/api-reference/post-healthcare-dental-claims#body.payToAddress) - **837I JSON:** [`billingPayToAddressName.address`](/healthcare/api-reference/post-healthcare-institutional-claims#body.billingPayToAddressName.address) - **X12 EDI and SFTP:** `Loop 2010AB` (Pay-to Address Name) `N3` (Pay-To Address Line) and `N4` (Pay-To Address City, State, ZIP Code) The [Create Professional Claim](/healthcare/api-reference/post-create-professional-claim-json) endpoint and the CMS-1500 claim form in the Stedi portal don't support a pay-to address. To send a lockbox address on a professional claim, use the 837P JSON (Legacy) endpoint or X12 EDI instead. Don't use the lockbox address as the billing provider's address. The billing provider's address must be its physical street address, such as the clinic or corporate headquarters. ## Give the address to payers [#give-the-address-to-payers] Payers typically send payments and claims-related mail to the pay-to address on the claim. Some payers mail to the address they have on file for the provider instead. If a payer keeps sending mail to a previous address, contact the payer to update the address they have on file. When you give payers the lockbox address, include the full address exactly as it appears on the lockbox's details page, including the recipient name and both address lines. # Medicare Beneficiary Identifier (MBI) lookup Source: https://www.stedi.com/docs/healthcare/mbi-lookup Find a patient's Medicare Beneficiary Identifier (MBI) when they don't know it, and get their Medicare eligibility in the same response. A [Medicare Beneficiary Identifier (MBI)](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis) is a unique, randomly-generated identifier assigned to individuals enrolled in Medicare. You must include the patient's MBI in every eligibility check you submit to the Centers for Medicare and Medicaid Services ([payer ID: CMS](https://www.stedi.com/healthcare/network/cms)). When patients don't know their MBI, you can use Stedi's eligibility APIs to perform an MBI lookup instead of a standard eligibility check. Stedi returns a complete eligibility response containing the patient's coverage status and their MBI for future reference. There is an additional cost to perform MBI lookups with Stedi's eligibility check APIs. Visit [pricing](https://www.stedi.com/pricing) for details. ## Types of MBI lookups [#types-of-mbi-lookups] There are two types of MBI lookups you can perform with Stedi. For each, you'll use a payer ID that tells Stedi to perform an MBI lookup for the patient in addition to a standard eligibility check. | Type | What's required | Payer ID | | -------- | ------------------------------------------------------------------------------------------------ | ------------ | | With SSN | first name, last name, date of birth, Social Security Number (SSN) | `MBILU` | | No SSN | first name, last name, date of birth, U.S. state (plus a city on the Raw X12 and SOAP endpoints) | `MBILUNOSSN` | We recommend running MBI lookups **with** the patient's SSN whenever possible. When the SSN is present, the MBI lookup has a higher likelihood of successfully returning their MBI. MBI lookups with no SSN are a fallback option when the patient's SSN isn't available. You don't need to include more patient demographic information than what's required, such as additional address data. It doesn't improve MBI lookup success rates. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Unlike standard eligibility checks, MBI lookups **always** require transaction enrollment. This is because MBI lookups involve sending requests to Stedi payers that tell Stedi to perform the MBI lookup in addition to a standard eligibility check. You must enroll the provider with Stedi's MBI lookup payers to use these services. To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for **Real-time eligibility checks**. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) Select the payer ID based on the type of MBI lookup you want to perform: - **With SSN:** [`MBILU` (CMS MBI Lookup)](https://www.stedi.com/healthcare/network?page=0&search=MBIL&entry=ASKVB) - **No SSN:** [`MBILUNOSSN` (CMS MBI Lookup Without SSN)](https://www.stedi.com/healthcare/network?page=0&search=MBIL&entry=APSMC) If you want to perform both types of MBI lookups, you must submit separate enrollment requests for each payer ID. When MBI lookups with SSN (Payer ID: `MBILU`) fail because the provider isn't enrolled, Stedi automatically submits the required transaction enrollment request. [Learn more](/healthcare/create-manage-transaction-enrollments#automatic-enrollment-requests) ## Run MBI lookups [#run-mbi-lookups] You can run MBI lookups with and without SSN using the following endpoints: - [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) - [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12) - [Real-Time Eligibility Check SOAP](/healthcare/api-reference/post-healthcare-eligibility-soap) - [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) You can also run MBI lookups with and without SSN through the [eligibility check form](https://portal.stedi.com/app/healthcare/checks/create) in the Stedi portal and through [bulk CSV uploads](/healthcare/batch-refresh-eligibility-checks#manual-submission). ### Request [#request] Construct an eligibility check request that includes the required patient demographic data: - **With SSN:** first name, last name, date of birth, Social Security Number (SSN) - **No SSN:** first name, last name, date of birth, U.S. state. For the Raw X12 and SOAP endpoints, you must also include a city in `Loop 2100C N4` (Subscriber City/State/ZIP Code). You can use a dummy city value, such as `DUMMY`, if needed. If you omit the city value, you receive an X12 validation error. Identify the lookup type with one of these payer IDs, which tell Stedi to perform an MBI lookup for the patient in addition to a standard eligibility check: - **With SSN:** `MBILU` - **No SSN:** `MBILUNOSSN` You don't need to include other patient information, such as additional address data. It doesn't improve lookup success rates. We recommend omitting the provider's name - Stedi uses the name on the provider's National Plan and Provider Enumeration System (NPPES) record. Only include it if you believe that the provider name on file with the payer differs from the provider name in NPPES. Bulk CSV uploads require a provider name. Visit [Provider name](/healthcare/send-eligibility-checks#provider-name) for details. The following sample requests show how to perform an MBI lookup for a patient named Jane Doe. #### JSON [#json] The following examples show MBI lookups with and without SSN for the [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) endpoint. {/* schema:CreateEligibilityCheckRequestContent */} ```bash Example MBI Lookup request curl --request POST \ --url https://healthcare.us.stedi.com/2026-06-01/eligibility-check \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "MBILU", "externalPatientId": "UAA111222333", "encounter": { "services": [ { "value": "30", "system": "STC" } ] }, "provider": { "name": { "organization": "ACME Health Services" }, "npi": "1999999984" }, "subscriber": { "dateOfBirth": "1900-01-01", "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "additionalInformation": { "ssn": "123456789" } } }' ``` ```bash Example MBI Lookup request curl --request POST \ --url https://healthcare.us.stedi.com/2026-06-01/eligibility-check \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "MBILUNOSSN", "externalPatientId": "UAA111222333", "encounter": { "services": [ { "value": "30", "system": "STC" } ] }, "provider": { "name": { "organization": "ACME Health Services" }, "npi": "1999999984" }, "subscriber": { "dateOfBirth": "1900-01-01", "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "address": { "state": "WV" } } }' ``` The following examples show MBI lookups with and without SSN for the [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint. {/* schema:BatchEligibilityChecksRequestContent */} ```bash Example MBI Lookup request curl --request POST \ --url https://manager.us.stedi.com/2024-04-01/eligibility-manager/batch-eligibility \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "items": [ { "submitterTransactionIdentifier": "ABC123456789", "tradingPartnerServiceId": "MBILU", "encounter": { "serviceTypeCodes": [ "30" ] }, "provider": { "organizationName": "ACME Health Services", "npi": "1999999984" }, "subscriber": { "firstName": "Jane", "lastName": "Doe", "dateOfBirth": "19000101", "ssn": "123456789" } } ] }' ``` ```bash Example MBI Lookup request curl --request POST \ --url https://manager.us.stedi.com/2024-04-01/eligibility-manager/batch-eligibility \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "items": [ { "submitterTransactionIdentifier": "ABC123456789", "tradingPartnerServiceId": "MBILUNOSSN", "encounter": { "serviceTypeCodes": [ "30" ] }, "provider": { "organizationName": "ACME Health Services", "npi": "1999999984" }, "subscriber": { "firstName": "Jane", "lastName": "Doe", "dateOfBirth": "19000101", "address": { "state": "WV" } } } ] }' ``` #### X12 [#x12] The following examples show an MBI lookup with SSN for the [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12) and [SOAP](/healthcare/api-reference/post-healthcare-eligibility-soap) endpoints. For a no SSN lookup, send `MBILUNOSSN` in `Loop 2100A NM109` (Information Source Primary Identifier), omit the patient's SSN, and include their state and city in `Loop 2100C N4` (Subscriber City/State/ZIP Code) instead. ```bash Example MBI Lookup request curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*CMS MBI Lookup*****PI*MBILU~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*****MI*123456789~REF*SY*123456789~DMG*D8*19550505~EQ*30~SE*13*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash Example MBI Lookup request curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*CMS MBI Lookup*****PI*MBILU~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*****MI*123456789~REF*SY*123456789~DMG*D8*19550505~EQ*30~SE*13*0001~GE*1*1~IEA*1*000000001~]]> ' ``` ### Response [#response] Stedi uses the patient's demographic data, along with their SSN or state, to perform an MBI lookup. If there is a match, Stedi submits an eligibility check to CMS. The response shape is the same for both the SSN and no SSN lookup types. Stedi returns a complete eligibility response from CMS for the patient, including their MBI. You can find the MBI in the following locations: - **Real-Time JSON:** [`subscriber.memberId`](/healthcare/api-reference/post-eligibility-check#response.subscriber.memberId) - **Raw X12:** [`subscriber.memberId`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.subscriber.memberId) - **Batch:** [`items[].subscriber.memberId`](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.subscriber.memberId) - **SOAP:** `Loop 2100C NM109` (Subscriber Primary Identifier), with `NM108` (Identification Code Qualifier) set to `MI` Visit [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits) for details about how you can use the eligibility response to determine a patient's coverage status and benefits. Although unlikely, false positives are possible, so you're ultimately responsible for matching results to your own records. The following examples show a CMS eligibility response returned from an MBI lookup. In this scenario, the patient's MBI is `1AA2CC3DD45`. The MBI is in `subscriber.memberId`. This example truncates the `statuses` array to keep it short. {/* schema:CreateEligibilityCheckResponseContent */} ```json Example MBI Lookup response { "meta": { "traceId": "01M4C8PJPY8P49D3EEXKQXVZGJ", "outboundTraceId": "01M4C8PJPY8P49D3EEXKQXVZGJ" }, "payerId": "MBILU", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *261007*2245*^*00501*482693415*0*T*`~GS*HB*STEDI*117151744*20261007*224544*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01M4C8PJPY8P49D3EEXKQXVZGJ*20260325*0901~HL*1**20*1~NM1*PR*2*CMS*****PI*CMS~HL*2*1*21*1~NM1*1P*2*MEDICAL PROVIDER*****XX*1999999984~HL*3*2*22*0~NM1*IL*1*DOE*JANE*A***MI*1AA2CC3DD45~N3*101 MAIN ST~N4*SACRAMENTO*CA*942030200~DMG*D8*19550505*F~DTP*307*D8*20241025~EB*I**41^54*********W~EB*1**88*********W~EB*R***QM*CA QMB Plan*******W~DTP*290*D8*20230101~EB*1**30^42^45^48^49^69^76^83^A5^A7^AG^BT^BU^BV*MA********W~DTP*291*D8*20190101~MSG*0-Beneficiary insured due to age OASI~EB*C**30*QM*Medicare Part A*26*0*****W~DTP*291*RD8*20240101-20241231~EB*1**30^2^23^24^25^26^27^28^3^33^36^37^38^39^40^42^50^51^52^53^67^69^73^76^83^86^98^A4^A6^A8^AI^AJ^AK^AL^BT^BU^BV^DM^UC*MB********W~DTP*291*D8*20190101~MSG*0-Beneficiary insured due to age OASI~EB*C**30*QM*Medicare Part B*23*0*****W~DTP*291*RD8*20240101-20241231~EB*A**30*QM*Medicare Part B*27**0****W~DTP*291*RD8*20240101-20241231~EB*R**88*OT********W~REF*18*A0505~REF*N6*555~DTP*292*D8*20230101~LS*2120~NM1*PR*2*UHC OF CALIFORNIA~N3*202 Main St~N4*Sacramento*CA*94203~PER*IC**TE*8006446644*UR*UHC.com/Medicare~LE*2120~EB*U**30*HN********W~REF*18*A0505~REF*N6*555~DTP*290*D8*20230101~MSG*MA Bill Option Code - A~LS*2120~NM1*PRP*2*UHC OF CALIFORNIA~N3*202 Main St~N4*Sacramento*CA*94203~PER*IC**TE*8006446644*UR*UHC.com/Medicare~LE*2120~SE*50*0001~GE*1*1~IEA*1*482693415~", "payer": { "name": { "organization": "CMS" }, "type": "PAYER", "identification": "CMS" }, "provider": { "name": { "organization": "MEDICAL PROVIDER" }, "type": "PROVIDER", "npi": "1999999984" }, "subscriber": { "address": { "addressLine1": "101 MAIN ST", "city": "SACRAMENTO", "state": "CA", "postalCode": "942030200" }, "dates": { "eligibility": { "start": "2024-10-25" } }, "dateOfBirth": "1955-05-05", "gender": "FEMALE", "name": { "person": { "firstName": "JANE", "lastName": "DOE", "middleName": "A" } }, "memberId": "1AA2CC3DD45" }, "plans": [ { "benefits": { "statuses": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "88", "definition": "Pharmacy", "system": "STC" }, "status": "ACTIVE_COVERAGE" }, { "coverageLevel": "INDIVIDUAL", "insuranceType": "MEDICARE_PART_A", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "messages": ["0-Beneficiary insured due to age OASI"], "dates": { "plan": { "start": "2019-01-01" } }, "status": "ACTIVE_COVERAGE" }, { "coverageLevel": "INDIVIDUAL", "insuranceType": "MEDICARE_PART_A", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "48", "definition": "Hospital - Inpatient", "system": "STC" }, "messages": ["0-Beneficiary insured due to age OASI"], "dates": { "plan": { "start": "2019-01-01" } }, "status": "ACTIVE_COVERAGE" }, { "coverageLevel": "INDIVIDUAL", "insuranceType": "MEDICARE_PART_B", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "messages": ["0-Beneficiary insured due to age OASI"], "dates": { "plan": { "start": "2019-01-01" } }, "status": "ACTIVE_COVERAGE" }, { "coverageLevel": "INDIVIDUAL", "insuranceType": "MEDICARE_PART_B", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "98", "definition": "Professional (Physician) Visit - Office", "system": "STC" }, "messages": ["0-Beneficiary insured due to age OASI"], "dates": { "plan": { "start": "2019-01-01" } }, "status": "ACTIVE_COVERAGE" } ], "coInsurance": [ { "coverageLevel": "INDIVIDUAL", "insuranceType": "QUALIFIED_MEDICARE_BENEFICIARY", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "dates": { "plan": { "start": "2024-01-01", "end": "2024-12-31" } }, "planCoverageDescription": "Medicare Part B", "timePeriod": "VISIT", "percent": "0" } ], "deductible": [ { "coverageLevel": "INDIVIDUAL", "insuranceType": "QUALIFIED_MEDICARE_BENEFICIARY", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "dates": { "plan": { "start": "2024-01-01", "end": "2024-12-31" } }, "planCoverageDescription": "Medicare Part A", "timePeriod": "EPISODE", "amount": "0" }, { "coverageLevel": "INDIVIDUAL", "insuranceType": "QUALIFIED_MEDICARE_BENEFICIARY", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "dates": { "plan": { "start": "2024-01-01", "end": "2024-12-31" } }, "planCoverageDescription": "Medicare Part B", "timePeriod": "CALENDAR_YEAR", "amount": "0" } ], "nonCovered": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "41", "definition": "Routine (Preventive) Dental", "system": "STC" } }, { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "54", "definition": "Long Term Care", "system": "STC" } } ], "otherOrAdditionalPayer": [ { "coverageLevel": "INDIVIDUAL", "insuranceType": "QUALIFIED_MEDICARE_BENEFICIARY", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "dates": { "coordinationOfBenefits": { "start": "2023-01-01" } }, "planCoverageDescription": "CA QMB Plan" }, { "coverageLevel": "INDIVIDUAL", "insuranceType": "OTHER", "network": { "indicator": "IN_AND_OUT_OF_NETWORK", "id": "555" }, "service": { "value": "88", "definition": "Pharmacy", "system": "STC" }, "dates": { "benefit": { "start": "2023-01-01" } }, "relatedEntities": [ { "name": { "organization": "UHC OF CALIFORNIA" }, "type": "PAYER", "address": { "addressLine1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contacts": [ { "phoneNumbers": ["8006446644"], "urls": ["UHC.com/Medicare"] } ] } ], "additionalInformation": { "plan": { "number": "A0505" } } } ], "contactFollowingEntityForInformation": [ { "coverageLevel": "INDIVIDUAL", "insuranceType": "HEALTH_MAINTENANCE_ORGANIZATION_HMO_MEDICARE_RISK", "network": { "indicator": "IN_AND_OUT_OF_NETWORK", "id": "555" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "messages": ["MA Bill Option Code - A"], "dates": { "coordinationOfBenefits": { "start": "2023-01-01" } }, "relatedEntities": [ { "name": { "organization": "UHC OF CALIFORNIA" }, "type": "PRIMARY_PAYER", "address": { "addressLine1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contacts": [ { "phoneNumbers": ["8006446644"], "urls": ["UHC.com/Medicare"] } ] } ], "additionalInformation": { "plan": { "number": "A0505" } } } ] } } ], "id": "ec_01a1188b-4add-7160-aa53-dffeae59910b", "eligibilitySearchId": "01a1188b-4ade-72fb-aa58-a835347fde91" } ``` The MBI is in `subscriber.memberId`, and in `Loop 2100C NM109` (Subscriber Primary Identifier) in the `x12` property. This example shows the [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12) response. The [Poll Batch Eligibility Checks](/healthcare/api-reference/get-healthcare-polling-eligibility) response contains the same properties, with each result as an element of an `items` array. ```json Example MBI Lookup response { "meta": { "senderId": "STEDI", "submitterId": "117151744", "applicationMode": "test", "traceId": "00000000000000000000000000", "outboundTraceId": "01M4EWZM158X3NW95J0QYH2P9A" }, "controlNumber": "749147396", "reassociationKey": "749147396", "tradingPartnerServiceId": "MBILU", "provider": { "providerName": "MEDICAL PROVIDER", "entityIdentifier": "Provider", "entityType": "Non-Person Entity", "npi": "1999999984" }, "subscriber": { "memberId": "1AA2CC3DD45", "firstName": "JANE", "lastName": "DOE", "middleName": "A", "gender": "F", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "dateOfBirth": "19550505", "address": { "address1": "101 MAIN ST", "city": "SACRAMENTO", "state": "CA", "postalCode": "942030200" } }, "payer": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "name": "CMS", "payorIdentification": "CMS" }, "planDateInformation": { "coordinationOfBenefits": "20230101", "benefit": "20230101", "eligibility": "20241025" }, "planStatus": [ { "statusCode": "1", "status": "Active Coverage", "serviceTypeCodes": ["88"] }, { "statusCode": "1", "status": "Active Coverage", "serviceTypeCodes": [ "30", "42", "45", "48", "49", "69", "76", "83", "A5", "A7", "AG", "BT", "BU", "BV" ] }, { "statusCode": "1", "status": "Active Coverage", "serviceTypeCodes": [ "30", "2", "23", "24", "25", "26", "27", "28", "3", "33", "36", "37", "38", "39", "40", "42", "50", "51", "52", "53", "67", "69", "73", "76", "83", "86", "98", "A4", "A6", "A8", "AI", "AJ", "AK", "AL", "BT", "BU", "BV", "DM", "UC" ] } ], "benefitsInformation": [ { "code": "I", "name": "Non-Covered", "serviceTypeCodes": ["41", "54"], "serviceTypes": ["Routine (Preventive) Dental", "Long Term Care"], "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": ["88"], "serviceTypes": ["Pharmacy"], "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" }, { "code": "R", "name": "Other or Additional Payor", "insuranceTypeCode": "QM", "insuranceType": "Qualified Medicare Beneficiary", "planCoverage": "CA QMB Plan", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsDateInformation": { "coordinationOfBenefits": "20230101" } }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "30", "42", "45", "48", "49", "69", "76", "83", "A5", "A7", "AG", "BT", "BU", "BV" ], "serviceTypes": [ "Health Benefit Plan Coverage", "Home Health Care", "Hospice", "Hospital - Inpatient", "Hospital - Room and Board", "Maternity", "Dialysis", "Infertility", "Psychiatric - Room and Board", "Psychiatric - Inpatient", "Skilled Nursing Care", "Gynecological", "Obstetrical", "Obstetrical/Gynecological" ], "insuranceTypeCode": "MA", "insuranceType": "Medicare Part A", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsDateInformation": { "plan": "20190101" }, "additionalInformation": [ { "description": "0-Beneficiary insured due to age OASI" } ] }, { "code": "C", "name": "Deductible", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "QM", "insuranceType": "Qualified Medicare Beneficiary", "planCoverage": "Medicare Part A", "timeQualifierCode": "26", "timeQualifier": "Episode", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsDateInformation": { "plan": "20240101-20241231" } }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "30", "2", "23", "24", "25", "26", "27", "28", "3", "33", "36", "37", "38", "39", "40", "42", "50", "51", "52", "53", "67", "69", "73", "76", "83", "86", "98", "A4", "A6", "A8", "AI", "AJ", "AK", "AL", "BT", "BU", "BV", "DM", "UC" ], "serviceTypes": [ "Health Benefit Plan Coverage", "Surgical", "Diagnostic Dental", "Periodontics", "Restorative", "Endodontics", "Maxillofacial Prosthetics", "Adjunctive Dental Services", "Consultation", "Chiropractic", "Dental Crowns", "Dental Accident", "Orthodontics", "Prosthodontics", "Oral Surgery", "Home Health Care", "Hospital - Outpatient", "Hospital - Emergency Accident", "Hospital - Emergency Medical", "Hospital - Ambulatory Surgical", "Smoking Cessation", "Maternity", "Diagnostic Medical", "Dialysis", "Infertility", "Emergency Services", "Professional (Physician) Visit - Office", "Psychiatric", "Psychotherapy", "Psychiatric - Outpatient", "Substance Abuse", "Alcoholism", "Drug Addiction", "Vision (Optometry)", "Gynecological", "Obstetrical", "Obstetrical/Gynecological", "Durable Medical Equipment", "Urgent Care" ], "insuranceTypeCode": "MB", "insuranceType": "Medicare Part B", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsDateInformation": { "plan": "20190101" }, "additionalInformation": [ { "description": "0-Beneficiary insured due to age OASI" } ] }, { "code": "C", "name": "Deductible", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "QM", "insuranceType": "Qualified Medicare Beneficiary", "planCoverage": "Medicare Part B", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsDateInformation": { "plan": "20240101-20241231" } }, { "code": "A", "name": "Co-Insurance", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "QM", "insuranceType": "Qualified Medicare Beneficiary", "planCoverage": "Medicare Part B", "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitPercent": "0", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsDateInformation": { "plan": "20240101-20241231" } }, { "code": "R", "name": "Other or Additional Payor", "serviceTypeCodes": ["88"], "serviceTypes": ["Pharmacy"], "insuranceTypeCode": "OT", "insuranceType": "Other", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsAdditionalInformation": { "planNumber": "A0505", "planNetworkIdNumber": "555" }, "benefitsDateInformation": { "benefit": "20230101" }, "benefitsRelatedEntity": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "entityName": "UHC OF CALIFORNIA", "address": { "address1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "8006446644" }, { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "UHC.com/Medicare" } ] } }, "benefitsRelatedEntities": [ { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "entityName": "UHC OF CALIFORNIA", "address": { "address1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "8006446644" }, { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "UHC.com/Medicare" } ] } } ] }, { "code": "U", "name": "Contact Following Entity for Eligibility or Benefit Information", "serviceTypeCodes": ["30"], "serviceTypes": ["Health Benefit Plan Coverage"], "insuranceTypeCode": "HN", "insuranceType": "Health Maintenance Organization (HMO) - Medicare Risk", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsAdditionalInformation": { "planNumber": "A0505", "planNetworkIdNumber": "555" }, "benefitsDateInformation": { "coordinationOfBenefits": "20230101" }, "benefitsRelatedEntity": { "entityIdentifier": "Primary Payer", "entityType": "Non-Person Entity", "entityName": "UHC OF CALIFORNIA", "address": { "address1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "8006446644" }, { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "UHC.com/Medicare" } ] } }, "benefitsRelatedEntities": [ { "entityIdentifier": "Primary Payer", "entityType": "Non-Person Entity", "entityName": "UHC OF CALIFORNIA", "address": { "address1": "202 Main St", "city": "Sacramento", "state": "CA", "postalCode": "94203" }, "contactInformation": { "contacts": [ { "communicationMode": "Telephone", "communicationNumber": "8006446644" }, { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "UHC.com/Medicare" } ] } } ], "additionalInformation": [ { "description": "MA Bill Option Code - A" } ] } ], "errors": [], "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *261008*2318*^*00501*749147396*0*T*`~GS*HB*STEDI*117151744*20261008*231841*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*00000000000000000000000000*20260325*0901~HL*1**20*1~NM1*PR*2*CMS*****PI*CMS~HL*2*1*21*1~NM1*1P*2*MEDICAL PROVIDER*****XX*1999999984~HL*3*2*22*0~NM1*IL*1*DOE*JANE*A***MI*1AA2CC3DD45~N3*101 MAIN ST~N4*SACRAMENTO*CA*942030200~DMG*D8*19550505*F~DTP*307*D8*20241025~EB*I**41^54*********W~EB*1**88*********W~EB*R***QM*CA QMB Plan*******W~DTP*290*D8*20230101~EB*1**30^42^45^48^49^69^76^83^A5^A7^AG^BT^BU^BV*MA********W~DTP*291*D8*20190101~MSG*0-Beneficiary insured due to age OASI~EB*C**30*QM*Medicare Part A*26*0*****W~DTP*291*RD8*20240101-20241231~EB*1**30^2^23^24^25^26^27^28^3^33^36^37^38^39^40^42^50^51^52^53^67^69^73^76^83^86^98^A4^A6^A8^AI^AJ^AK^AL^BT^BU^BV^DM^UC*MB********W~DTP*291*D8*20190101~MSG*0-Beneficiary insured due to age OASI~EB*C**30*QM*Medicare Part B*23*0*****W~DTP*291*RD8*20240101-20241231~EB*A**30*QM*Medicare Part B*27**0****W~DTP*291*RD8*20240101-20241231~EB*R**88*OT********W~REF*18*A0505~REF*N6*555~DTP*292*D8*20230101~LS*2120~NM1*PR*2*UHC OF CALIFORNIA~N3*202 Main St~N4*Sacramento*CA*94203~PER*IC**TE*8006446644*UR*UHC.com/Medicare~LE*2120~EB*U**30*HN********W~REF*18*A0505~REF*N6*555~DTP*290*D8*20230101~MSG*MA Bill Option Code - A~LS*2120~NM1*PRP*2*UHC OF CALIFORNIA~N3*202 Main St~N4*Sacramento*CA*94203~PER*IC**TE*8006446644*UR*UHC.com/Medicare~LE*2120~SE*50*0001~GE*1*1~IEA*1*749147396~", "eligibilitySearchId": "01a11dcf-d011-71ad-8939-b7e771560f5b", "id": "ec_01a11dcf-d002-70e5-9bbf-dab921f9bb86" } ``` The MBI is in `Loop 2100C NM109` (Subscriber Primary Identifier) in the `Payload` element. ```xml Example MBI Lookup response X12_271_Response_005010X279A1 RealTime 01a11dd0-6195-7708-b932-9431005fed31 2026-10-08T23:19:18Z STEDI STEDI 2.2.0 Success ``` ### Concurrency limit [#concurrency-limit] MBI lookups you perform using real-time eligibility check endpoints (JSON and Raw X12) share a concurrency pool with other real-time healthcare APIs. For more information, visit [Concurrency limits](/healthcare/api-reference#concurrency-limits). MBI lookups you perform using the [Batch Eligibility Check](/healthcare/api-reference/post-healthcare-batch-eligibility) endpoint don't count toward your Stedi account concurrency limit. ## Mock request [#mock-request] When you submit the following mock MBI lookup request with a [test API key](/healthcare/api-reference#api-key-types), Stedi returns mock benefits data you can use for testing. The mock request works with Stedi's [JSON](/healthcare/api-reference/post-eligibility-check), [Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12), and [SOAP](/healthcare/api-reference/post-healthcare-eligibility-soap) endpoints. This mock request is for an MBI lookup with SSN. Mock requests are free for testing purposes and won't incur any charges in your Stedi account. Request notes: - MBI lookup supports only service type code `30`. - You can use any organization name and any NPI, as long as it passes check digit validation. To generate a dummy NPI, you can use this [free tool](https://jsfiddle.net/alexdresko/cLNB6). - You must use the exact patient values shown in the test request. Other birth dates, first names, last names, and Social Security Numbers return errors. {/* schema:CreateEligibilityCheckRequestContent */} ```bash test request for CMS MBI Lookup curl --request POST \ --url 'https://healthcare.us.stedi.com/2026-06-01/eligibility-check' \ --header 'Authorization: Key ' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "MBILU", "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "lastName": "Doe" } }, "dateOfBirth": "1955-05-05", "additionalInformation": { "ssn": "123456789" } }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ```bash test request for CMS MBI Lookup curl --request POST \ --url 'https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12' \ --header 'Authorization: Key ' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*CMS MBI Lookup*****PI*MBILU~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*****MI*123456789~REF*SY*123456789~DMG*D8*19550505~EQ*30~SE*13*0001~GE*1*1~IEA*1*000000001~" }' ``` ```bash test request for CMS MBI Lookup curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*CMS MBI Lookup*****PI*MBILU~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*0~TRN*1*00000000000000000000000000*3117151744~NM1*IL*1*Doe*****MI*123456789~REF*SY*123456789~DMG*D8*19550505~EQ*30~SE*13*0001~GE*1*1~IEA*1*000000001~]]> ' ``` ## Health Insurance Claim Number (HICN) [#health-insurance-claim-number-hicn] Some payers return the patient's MBI in a standard eligibility response, without you performing an MBI lookup. Where it appears depends on the endpoint: - **Real-Time JSON:** [`subscriber.additionalInformation.mbi`](/healthcare/api-reference/post-eligibility-check#response.subscriber.additionalInformation.mbi), or `additionalInformation.mbi` on an individual benefit - **Raw X12:** [`benefitsInformation[].benefitsAdditionalInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsAdditionalInformation.hicNumber) or [`planInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planInformation.hicNumber) - **Batch:** [`items[].benefitsInformation[].benefitsAdditionalInformation.hicNumber`](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.benefitsAdditionalInformation.hicNumber) or [`items[].planInformation.hicNumber`](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.planInformation.hicNumber) - **SOAP:** `REF` (Subscriber Additional Identification) in `Loop 2100C` or `Loop 2110C`, with `REF01` set to `F6` If the value matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI. In these cases, you don't need to perform an MBI lookup - you can use this value in a standard eligibility check to CMS. You're most likely to receive an MBI in eligibility responses from commercial Medicare Advantage plans, but they can also be present in responses from Medicaid plans for dual-eligible patients. ## Medicare Advantage plans [#medicare-advantage-plans] A Medicare Advantage plan (also known as Medicare Part C) is a type of health insurance plan offered by private companies that contract with Medicare to provide all of a patient's Part A (hospital insurance) and Part B (medical insurance) benefits. Medicare Advantage plans have their own unique member ID, which the MBI lookup response **doesn't** return. However, the MBI lookup response includes the patient's Medicare Advantage plan name when available. Where it appears depends on the endpoint: - **Real-Time JSON:** `relatedEntities[].name.organization` on the relevant benefit - **Raw X12:** [`benefitsInformation[].benefitsRelatedEntities[].entityName`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsRelatedEntities.entityName) - **Batch:** [`items[].benefitsInformation[].benefitsRelatedEntities[].entityName`](/healthcare/api-reference/get-healthcare-polling-eligibility#response.items.benefitsInformation.benefitsRelatedEntities.entityName) - **SOAP:** `Loop 2120C NM103` (Benefit Related Entity Last or Organization Name) Don't submit eligibility checks for Medicare Advantage plans to CMS (HETS) - submit them to the actual Medicare Advantage plan payer instead. Many Medicare Advantage plans allow you to submit [eligibility checks](/healthcare/send-eligibility-checks) with just the patient's name and date of birth. However, if that approach is unsuccessful and you don't have the patient's member ID, you can use [Insurance Discovery](/healthcare/insurance-discovery) to retrieve benefits information with the patient's demographic information instead. ### HETS Rules of Behavior [#hets-rules-of-behavior] You must abide by the HIPAA Eligibility Transaction System (HETS) [Rules of Behavior](https://www.cms.gov/research-statistics-data-and-systems/cms-information-technology/hetshelp/downloads/eligibilitytransactionsysteminquiriesrulesofbehavior.pdf) when you use MBI lookup. HETS is intended to support original Medicare fee-for-service (FFS) activities, such as preparing and submitting FFS claims. If you have no intention of submitting claims to Medicare, using MBI lookup to identify whether a patient is enrolled in a Medicare Advantage plan is likely outside the scope of permitted HETS use. You should consult your own legal counsel to determine what's permissible for your specific situation. Stedi can't make this determination on your behalf or provide consultation about what may or may not be permitted. ## Outdated MBI error [#outdated-mbi-error] Stedi's MBI lookup may rarely retrieve an outdated MBI for a patient. The Centers for Medicare and Medicaid Services (CMS) may rotate an MBI for a member for various reasons at any time, such as to help protect against identity theft. In these cases, the response contains an [`AAA` error](/healthcare/eligibility-troubleshooting#payer-aaa-errors) with code `72` (Invalid/Missing Subscriber/Insured ID) and the outdated MBI. The following examples show only the `AAA` error and the outdated MBI. The [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) endpoint returns the error in the top-level `errors` array. The outdated MBI is in `subscriber.memberId`. Errors from `Loop 2100C` (Subscriber Name) have `location` set to `SUBSCRIBER`. ```json Example outdated MBI response { "errors": [ { "code": "72", "description": "Invalid/Missing Subscriber/Insured ID", "followupAction": "Please Correct and Resubmit", "location": "SUBSCRIBER", "possibleResolutions": "The subscriber's member ID is either missing or invalid.\n\u2022 Check the `subscriber.memberId`.\n\u2022 Ensure the member ID doesn't include the [Card Issuer Identifier](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).\n\u2022 If you can't locate the correct member ID, try running an [insurance discovery check](https://www.stedi.com/docs/healthcare/insurance-discovery) to retrieve the patient's benefits information instead." } ], "subscriber": { "memberId": "1AA2CC3DD45" } } ``` The [Real-Time Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12) endpoint returns the error in both the top-level `errors` array and `subscriber.aaaErrors`. The outdated MBI is in `subscriber.memberId`. The [Poll Batch Eligibility Checks](/healthcare/api-reference/get-healthcare-polling-eligibility) response contains the same properties, with each result as an element of an `items` array. ```json Example outdated MBI response { "errors": [ { "code": "72", "description": "Invalid/Missing Subscriber/Insured ID", "field": "AAA", "followupAction": "Please Correct and Resubmit", "location": "2100C", "possibleResolutions": "The subscriber's member ID is either missing or invalid.\n\u2022 Check the `subscriber.memberId`.\n\u2022 Ensure the member ID doesn't include the [Card Issuer Identifier](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).\n\u2022 If you can't locate the correct member ID, try running an [insurance discovery check](https://www.stedi.com/docs/healthcare/insurance-discovery) to retrieve the patient's benefits information instead." } ], "subscriber": { "aaaErrors": [ { "code": "72", "followupAction": "Please Correct and Resubmit", "description": "Invalid/Missing Subscriber/Insured ID", "possibleResolutions": "The subscriber's member ID is either missing or invalid.\n\u2022 Check the `subscriber.memberId`.\n\u2022 Ensure the member ID doesn't include the [Card Issuer Identifier](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).\n\u2022 If you can't locate the correct member ID, try running an [insurance discovery check](https://www.stedi.com/docs/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.", "location": "Loop 2100C", "field": "AAA" } ], "memberId": "1AA2CC3DD45" } } ``` The [Real-Time Eligibility Check SOAP](/healthcare/api-reference/post-healthcare-eligibility-soap) endpoint returns the error in `Loop 2100C AAA` (Subscriber Request Validation). The outdated MBI is in `Loop 2100C NM109` (Subscriber Primary Identifier). ```text Example outdated MBI segments NM1*IL*1*DOE*JANE*A***MI*1AA2CC3DD45~ AAA*N**72*C~ ``` ## Recommended retry strategy [#recommended-retry-strategy] Implementing the right retry strategy for eligibility check failures saves a lot of time and money. At a minimum, we **strongly recommend** automatically retrying every request that fails due to payer connectivity issues. Automatic retries resolve a significant portion of these types of failures without manual intervention. Visit [Retry strategy](/healthcare/eligibility-troubleshooting#retry-strategy) for details. ## CMS traceability requirements [#cms-traceability-requirements] All parties involved in HETS eligibility transactions must comply with the [HETS Rules of Behavior](https://www.cms.gov/research-statistics-data-and-systems/cms-information-technology/hetshelp/downloads/eligibilitytransactionsysteminquiriesrulesofbehavior.pdf). Compliance is also required under our terms. Review the Rules of Behavior before sending eligibility checks to CMS. Starting November 8, 2025, the Centers for Medicare & Medicaid Services (CMS) requires submitters to include the entire chain of network hops for every eligibility request sent to CMS's eligibility system, HETS. Specifically, requests must include an `X-Forwarded-For` HTTP header containing the network IP addresses from the point of origin through receipt by the HETS system. CMS expects `X-Forwarded-For` to list each IP, comma-separated, starting with the originating system and continuing through every intermediary. To comply with this requirement: - You must collect all IP addresses for upstream requests and pass them in the standard `X-Forwarded-For` header when calling Stedi's API. If you are yourself an intermediary – for example, an RCM, EHR, or PMS system – you'll need to coordinate with your providers and any third-party organizations to ensure they include the Network IP details as part of the `X-Forwarded-For` header. This enables CMS to receive a complete list of all IPs, including the original initiator of the request (typically, the provider). - Stedi records the IP address you use when you call our API, as well as all the IP addresses listed in the `X-Forwarded-For` header. We include these IP addresses in the list submitted to CMS. You only need to include the `X-Forwarded-For` header in eligibility requests when there are upstream IP addresses. The following examples illustrate when and how to include the header: | Scenario | `X-Forwarded-For` required? | Result | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | | A provider (IP `2.2.2.2`) connects directly to Stedi without intermediaries. | No. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2` | | A provider (IP `2.2.2.2`) routes through an RCM platform's transactional system (IP `3.3.3.3`) that calls Stedi's API using a separate integration backend (IP `4.4.4.4`). | Yes. The RCM platform sets `X-Forwarded-For: 2.2.2.2, 3.3.3.3`. Stedi records the IP address of the API caller (`4.4.4.4` ) and sends it to CMS. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2, 3.3.3.3, 4.4.4.4`. | | A provider network (IP `2.2.2.2`) passes through an office firewall (IP `4.4.4.4`) and then an RCM platform (IP `3.3.3.3`), which calls Stedi's API. | Yes. The RCM platform sets `X-Forwarded-For: 2.2.2.2, 4.4.4.4`. Stedi records the IP address of the API caller (`3.3.3.3`) and sends it to CMS. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2, 4.4.4.4, 3.3.3.3`. | ### U.S. IP address requirement [#us-ip-address-requirement] Stedi blocks eligibility requests to CMS when any IP address in the chain – the originating IP address or any in the X-Forwarded-For header – is located outside the United States. # Model Context Protocol (MCP) Source: https://www.stedi.com/docs/healthcare/mcp-server Our Model Context Protocol (MCP) server defines a set of tools that AI agents can use to perform and troubleshoot eligibility checks through Stedi. When building agents that work with eligibility data, we recommend using our MCP server. It excels at individual eligibility checks, especially when your agent needs to retrieve coverage data in real time. For example: - A voice agent can use the MCP server to quickly verify benefits in a few seconds instead of calling payers over the phone. It can then place follow-up calls to payers only as needed - for example, to collect additional benefit details. - A Revenue Cycle Management (RCM) workflow agent can use the MCP server to validate a patient's coverage before scheduling an appointment or submitting a claim. You can also use the MCP server to perform individual checks with MCP clients. This is useful for testing your integration during development and for enabling operations teams to run ad-hoc checks or troubleshoot issues. Be sure to put measures in place to stay compliant with your organization's data-handling policies, HIPAA, and other applicable requirements. ## Why use the MCP server? [#why-use-the-mcp-server] Performing eligibility checks successfully requires more than just calling Stedi's APIs. In addition to determining the right payer, you must know the required and recommended properties, know how to interpret errors, and build out a robust retry strategy for various failure cases. The troubleshooting process can be complex. For example, if your check fails due to a payer connectivity issue, you should retry immediately. If it fails due to a `Subscriber Not Found` error, you must systematically diagnose the issue in order to successfully retrieve benefits information. We have best practices for entering [patient data](/healthcare/send-eligibility-checks#patient-information), [troubleshooting](/healthcare/eligibility-troubleshooting), and [retries](/healthcare/eligibility-troubleshooting#retry-strategy) in our docs - you'd typically need to implement this logic in your product and then maintain it over time. The MCP server is helpful because it comes with all of this logic built in. ### Features [#features] The MCP server allows agents to: - **Find the correct payer:** The MCP server has a tool for searching Stedi's payer database. This allows agents to access information like payer IDs and supported transaction types as needed when answering questions or running eligibility checks. - **Run eligibility checks:** The MCP server has a tool for constructing and submitting eligibility requests using available patient and provider data. If the first attempt fails, the server provides instructions about how to adjust inputs, retry, and move forward. - **Troubleshoot rejection codes:** The MCP server provides instructions on what to do in these scenarios - for example, remove the member ID, adjust the name, or try alternate, related payer IDs. These are the same tactics our support team uses internally to resolve issues. In essence, the MCP server allows you to tell your agent to "run an eligibility check" at the appropriate times during its workflow. You can focus on building your agent's core functionality, while the MCP server handles the complexities of eligibility checks. ### Limitations [#limitations] The MCP server is designed for an agent that is performing and troubleshooting a single eligibility check. It's not intended for bulk eligibility checks, or for interpreting the benefits in an eligibility response. - For bulk eligibility checks, use Batch Eligibility Check API directly. Visit [batch refresh checks](/healthcare/batch-refresh-eligibility-checks) for details. - To interpret the eligibility response, you'll need to layer your own logic on top of the MCP server. For example, you'll need custom logic for tasks like determining whether a patient has active coverage for a particular service or retrieving the patient's copay. Visit [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits) for complete details. ### Data security and compliance [#data-security-and-compliance] The MCP server uses TLS encryption for all connections. You can authenticate to the MCP server using one of the following methods: - API key authentication (standard Stedi production or test key) - OAuth 2.x authentication (OAuth required for Claude integrations) If you're using our MCP server with a third-party tool like Claude or ChatGPT, follow your organization's data handling policies to ensure that you stay compliant with HIPAA and other applicable requirements. For example, your organization likely requires a BAA with any third-party tool before using the tool with Stedi's MCP server. #### Test mode [#test-mode] You can start using the MCP server in [test mode](/healthcare/test-mode). In test mode, you can use test API keys to develop and test your integration without transmitting PHI or PII. The MCP server is only available for production accounts. If you have a [sandbox account](/healthcare/billing#sandbox-accounts), click **Upgrade account** in the side navigation to access the MCP server. ## How the MCP server works [#how-the-mcp-server-works] Your AI agent connects to the server using an MCP client. Once connected, the server gives your agent access to the available [tools](#tools) and [prompts](#prompts) for running eligibility checks. ![MCP Server Diagram](/images/healthcare-apis/mcp-server.svg) The MCP server adds minimal overhead - you'll get the same fast response times from our APIs with added intelligence for your agents. ### Tools [#tools] Tools interact with Stedi's APIs to perform tasks. The MCP server provides the following tools for your agent to use: {/* prettier-ignore-start */} | Tool Name | Description | |-----------|-------------| | `search_for_payer` | Calls the [Search Payers](/healthcare/api-reference/get-search-payers) endpoint to find a Stedi payer based on a provided payer ID or name. It even works with partial names or typos. For example, `cig` finds Cigna.| | `eligibility_check` | Runs an eligibility check using the [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-healthcare-eligibility-legacy) endpoint. The JSON format provides the most reliable results for AI agents. | {/* prettier-ignore-end */} ### Prompts [#prompts] The MCP server includes prompts to help your agent recover from common eligibility errors. They cover the most common recoverable scenarios we see in production: - How to handle common errors - When to retry eligibility checks - What to do when a payer isn't found You and your agent stay in control of executing follow-up actions, such as troubleshooting and retries. Many LLM clients don't automatically read prompt definitions. You must explicitly instruct them to "read the prompts" or use a client-specific command. Otherwise, the model may never access prompt content. ## Install the MCP server [#install-the-mcp-server] The eligibility MCP server is a Streamable HTTP MCP server. We support two authentication methods: - **API key authentication** (standard usage) - **OAuth 2.x authentication** (required for Claude integrations) ### API Key Authentication [#api-key-authentication] Endpoint: ``` https://mcp.us.stedi.com/2025-07-11/mcp ``` To connect your agent: - Create a [production or test API key](/healthcare/api-reference#api-key-types) for authentication. Use test API keys to develop without transmitting PHI or PII. - Add the following configuration to your agent's MCP client: ```json { "mcpServers": { "stedi-healthcare": { "type": "http", "url": "https://mcp.us.stedi.com/2025-07-11/mcp", "headers": { "Authorization": "STEDI_PROD_API_KEY" } } } } ``` ### OAuth Authentication [#oauth-authentication] We recommend using API key authentication when possible for simplicity. Endpoint: ``` https://mcp.us.stedi.com/mcp2 ``` This flow doesn't require an API key in the MCP configuration. To connect your agent, add the following configuration to your agent's MCP client: ```json { "mcpServers": { "healthcare-mcp": { "type": "http", "url": "https://mcp.us.stedi.com/mcp2" } } } ``` OAuth authentication currently supports email and password only. Single sign-on (SSO) authentication is not supported. You must have the [Operator role](/healthcare/account-settings#assign-member-roles) or above, and your plan must include healthcare eligibility. Sessions expire after 30 days - you'll need to reauthenticate through your chosen AI agent. #### Claude Code [#claude-code] OAuth authentication is required when adding Stedi's MCP server to Claude Code. Run this command to install the MCP server: ```bash claude mcp add --transport http stedi-eligibility-mcp https://mcp.us.stedi.com/mcp2 ``` To use the MCP server: 1. Run `/mcp` inside Claude Code. 2. Begin the authentication process for `stedi-eligibility-mcp`. A browser window opens where you can sign in to your Stedi account. 3. Sign in using your Stedi account credentials. OAuth completes and the MCP server becomes available for you to use. #### ChatGPT [#chatgpt] The Stedi app requires a [ChatGPT Enterprise plan](https://chatgpt.com/pricing/). The app isn't available on ChatGPT plans for individuals (Free/Go/Plus/Pro). The Stedi app is available for ChatGPT users. To connect: 1. Open [ChatGPT](https://chatgpt.com/). 2. Click **Apps** in the sidebar. 3. Search for and select **Stedi** from the list of available apps. 4. Click **Connect**. 5. Sign in to your Stedi account. 6. Review and authorize the permissions the Stedi app is requesting. Once connected, you can use ChatGPT to perform actions in your Stedi account. For example, you might write "Run an eligibility check for John Doe with the following demographic information." ## Example use [#example-use] Here are some examples of how you might use the MCP server in different scenarios. ### Search for a payer [#search-for-a-payer] You can instruct your agent to retrieve the correct payer ID before running an eligibility check. **Example prompt** > Determine the correct payer ID for Cigna and confirm whether eligibility checks are supported. **What happens** The MCP server: - Invokes the `search_for_payer` tool. - Matches "Cigna". - Returns the correct payer ID and supported transaction types. - Confirms whether the payer supports eligibility (270/271) transactions. ### Run an eligibility check [#run-an-eligibility-check] You can instruct your agent to use the MCP server to check patient eligibility before scheduling appointments. **Example prompt** > Run an eligibility check for this patient before scheduling their appointment. **What happens** The MCP server: - Invokes the `eligibility_check` tool. - Constructs a properly formatted JSON eligibility request using available patient and provider data. - Submits the request to the payer in real time. - Returns structured eligibility response data. - Provides retry guidance if the request fails due to a recoverable issue. ### Recover from failures [#recover-from-failures] The MCP server can help your agent recover from common errors when running eligibility checks. **Example prompt** > Read the prompts from Stedi's MCP server. Then use Stedi's MCP server to troubleshoot and retry the eligibility check for patients with "Subscriber Not Found" errors. **What happens** The MCP server: - Analyzes the rejection reason. - Provides structured retry guidance based on best practices for that error type. For example, if the error is `Subscriber Not Found`, the MCP server may recommend removing the member ID or adjusting the name details. - After the agent updates the request, the MCP server re-runs the eligibility check and returns the updated results. ## MCP server vs. Stedi Agent [#mcp-server-vs-stedi-agent] The Stedi Agent and the Model Context Protocol (MCP) server can both help you resolve failed eligibility checks and find payer information, but they serve different use cases. - The [Stedi Agent](/healthcare/stedi-agent) is a Stedi-controlled, AI assistant within the Stedi portal. It's ready to use whenever you need it. Unlike the MCP server, you can't manage or invoke the Stedi Agent programmatically - you can only use it within the Stedi portal. The Stedi Agent is built on top of the MCP server, meaning it uses the MCP server's exposed tools to perform actions. - The [MCP Server](/healthcare/mcp-server) provides a set of tools, which are a wrapper around Stedi's APIs, that AI agents can use to find payer information and perform and troubleshoot eligibility checks. The MCP server includes the same retry logic (in a prompt) that the Stedi Agent uses to automatically resolve eligibility check failures. You can use the MCP server to build your own AI agents tailored to your use case. Unlike the Stedi Agent, you'll need to install and configure the MCP server for your preferred AI agent. ## Pricing [#pricing] Stedi offers the MCP server on all [paid plans](https://www.stedi.com/pricing). There is no charge for using the MCP server itself - you only pay for related API requests. Note that for eligibility checks, there's no charge for non-billable requests, such as those that return errors indicating that the payer is down. Visit [billing for eligibility checks](/healthcare/intro-eligibility-checks#billing-for-eligibility-checks) for details. We encourage you to contact us with questions, feedback, or for help using our products. ## Submit a ticket in the Stedi portal [#submit-a-ticket-in-the-stedi-portal] You can submit a support ticket from any page in the Stedi portal: {/* vale Stedi.LatinAbbreviations = NO */} 1. Click **Support** at the bottom of the side navigation. 2. Describe your question or issue. You can also add a subject. 3. Confirm that your request doesn't include Protected Health Information (PHI). 4. Click **Send ticket (via email)**. {/* vale Stedi.LatinAbbreviations = YES */} Stedi includes the URL of the page you're viewing with your ticket, and our team replies by email. To track your tickets, click **Open support portal**. ## Contact us by email, Slack, or Teams [#contact-us-by-email-slack-or-teams] We make every effort to respond as soon as possible, particularly to urgent requests. For both general support requests and billing inquiries, email [support@stedi.com](mailto:support@stedi.com). You can also email us to set up a dedicated Slack or Teams channel. When you report an issue, please include the following: - A description of the issue, including the current behavior and the expected behavior - Your Stedi account ID - Screenshots showing the problem, when possible Don't include Protected Health Information (PHI) in support requests, including in screenshots. ## Privacy Policy [#privacy-policy] Refer to our [Privacy Notice](https://legal.stedi.com/legal/privacy-notice-b91ef9d6) for details on how we handle your data. # National Provider Identifier (NPI) Source: https://www.stedi.com/docs/healthcare/national-provider-identifier Learn what a National Provider Identifier (NPI) is, the two NPI types – and how to find, validate, or apply for an NPI. The National Provider Identifier (NPI) is a unique identification number assigned to healthcare providers. It's used to identify providers in healthcare transactions, like billing, referrals, and insurance claims, and it's required when processing administrative and financial transactions adopted under HIPAA (the Health Insurance Portability and Accountability Act). If a provider has an NPI, it's required when completing [transaction enrollment](/healthcare/transaction-enrollment) and when sending any healthcare transaction through Stedi, including eligibility checks and claims. Our service terms require that you have legal authority to use the NPI. In certain rare circumstances, payers may allow providers who don't have an NPI to submit transactions using another identifier, such as their Social Security Number (SSN) instead. Providers who don't have an NPI are typically non-medical providers, such as social workers, home health aides, or transportation services. Using alternative identifiers typically requires a special agreement with the payer. - For claims, providers who aren't eligible for an NPI can bill using an ID the payer or state assigns them. Contact Stedi support to register the provider first. Without registration, these claims may be rejected. Visit [Submit claims for atypical providers](/healthcare/submit-claims-atypical-providers) for details. - For Electronic Remittance Advice (ERAs), atypical providers can enroll using the placeholder NPI `1999999984` and their Tax Identification Number (TIN). Visit [Submit claims for atypical providers](/healthcare/submit-claims-atypical-providers#complete-transaction-enrollment) for enrollment steps. - For other transaction types, we don't recommend sending an alternative identifier unless the payer has explicitly instructed you to do so. Payer support for eligibility and claim status checks without an NPI varies, so test each payer before you rely on them. Contact Stedi support for payer-specific guidance. ## NPI types [#npi-types] There are two types of NPIs: - **Type 1 - Individual:** This type of NPI is for individual healthcare providers, such as doctors, dentists, nurse practitioners, physical therapists, and chiropractors. Note that providers who run their own practice likely still need to obtain an individual NPI to use when billing services under their own name. - **Type 2 - Organization:** This type of NPI is for healthcare organizations or group practices, such as hospitals, clinics, labs, nursing homes, and home health agencies. Use this type of NPI when billing services under the organization's name, not an individual person. Unlike individual NPIs, a single organization can have multiple organization NPIs for different locations, divisions, or services. ## Find a provider's NPI [#find-a-providers-npi] You can use the [NPI Registry](https://npiregistry.cms.hhs.gov/search), the public search tool for the National Plan and Provider Enumeration System (NPPES), to find a provider's NPI. The registry lets you search for NPIs by name, organization, or NPI number. You can also verify the status of an NPI and view the provider's information, including their taxonomy codes and practice locations. Remember, our service terms require that you have legal authority to use an NPI with Stedi. ## Find a provider by NPI [#find-a-provider-by-npi] You can use Stedi's [NPI Registry](https://www.stedi.com/npi-registry) to find a provider's information using their NPI. It's a read-only view of the NPPES database. The registry provides access to over 9.3 million records, and search results include the provider's name, specialty, taxonomy codes, and credential information. Results for organization (Type 2) NPIs also include the practice address and phone number. ## Generate a dummy NPI [#generate-a-dummy-npi] You can generate a dummy NPI for test transactions using this [free online tool](https://jsfiddle.net/alexdresko/cLNB6). Note that these dummy NPIs aren't valid for production transactions. ## Apply for an NPI [#apply-for-an-npi] You can obtain an NPI from [NPPES](https://nppes.cms.hhs.gov/webhelp/nppeshelp/NPPES%20FAQS.html#how-do-i-apply-for-an-npi). The process includes the following steps: You'll be required to provide the following in your application: - Personal information, such as your name, address, and phone number - Type of provider (individual or organization) - Provider specialty (taxonomy code) - Practice location and contact information - Other information, such as your state license number and the name of your state licensing board Most online applications are processed within 10 business days. Paper applications may take longer. Once approved, you'll receive your 10-digit NPI number through email or mail, depending on how you applied. ## Update or deactivate your NPI [#update-or-deactivate-your-npi] Stedi's NPI Registry is a read-only view of NPPES, which the Centers for Medicare & Medicaid Services (CMS) maintains. Stedi can't change the information it displays. If you believe information in your NPPES record is inaccurate, or if you want to update or deactivate your NPI, you can do so directly with CMS at [https://nppes.cms.hhs.gov](https://nppes.cms.hhs.gov). ## NPI format and validation [#npi-format-and-validation] The NPI is a 10-position, intelligence-free numeric identifier (10-digit number). This means that the numbers do not carry other information about healthcare providers, such as the state in which they live or their medical specialty. The NPI format consists of 9 numeric digits followed by one numeric check digit. The check digit is calculated using the Luhn formula. When you submit a transaction such as an eligibility check or claim to Stedi, we validate the NPI before submitting it to the upstream payer. At a minimum, we validate that the submitted number passes check digit validation. For example, NPIs in test eligibility checks submitted with a test API key must pass check digit validation. In certain cases, we also validate that the NPI exists in the NPPES database. ### Calculate the check digit manually [#calculate-the-check-digit-manually] Assume the 9-position identifier part of the NPI is 123456789. Using the Luhn formula on the identifier portion, you would calculate the check digit as follows: 1. Double the value of alternate digits, beginning with the rightmost digit: 2 6 10 14 18 1. Add a constant 24 (to account for the 80840 prefix that would be present on a card issuer identifier), plus the individual digits of the products of doubling, plus unaffected digits: 24 + 2 + 2 + 6 + 4 + 1 + 0 + 6 + 1 + 4 + 8 + 1 + 8 = 67 1. Subtract the sum from the next higher number ending in zero: 70 - 67 = 3 The check digit is 3. So, the final NPI with check digit is 1234567893. # Notifications Source: https://www.stedi.com/docs/healthcare/notifications Stedi sends notifications through two channels: in-app (the bell icon in the side navigation) and email. You can manage your notification preferences from the [Notifications page](https://portal.stedi.com/app/settings/notifications) in your account settings. ## Notification categories [#notification-categories] Stedi sends you notifications about the following: ### Transaction enrollments [#transaction-enrollments] Stedi sends notifications when a [transaction enrollment](/healthcare/transaction-enrollment) request changes status to `PROVISIONING`, `PROVIDER_ACTION_REQUIRED`, `LIVE`, or `REJECTED`. - **Who:** The [email set as the **Stedi contact person**](/healthcare/create-manage-transaction-enrollments#stedi-contact-email) - **What:** In-app notifications, plus a batched email once per hour with all updates. Visit [Notifications](/healthcare/create-manage-transaction-enrollments#notifications) in the transaction enrollment guide for more details. ### Event destinations [#event-destinations] Stedi sends notifications when [event deliveries](/healthcare/event-destinations-message-handling) to an event destination repeatedly fail. - **Who:** Every member of the Stedi account - **What:** In-app and email notifications at the following intervals: - **After 2 hours:** If retry attempts for all events continue failing for 2 hours, Stedi sends an in-app notification and email. You should investigate the issue as soon as possible. Stedi will continue automatic retries. - **After 24 hours:** If retry attempts continue failing for 24 hours, Stedi sends another notification informing you that the retry limit is approaching. Visit [Notifications](/healthcare/event-destinations-message-handling#notifications) in the event destinations guide for more details. ### Account activity [#account-activity] Stedi sends notifications for the following account activity: - You're invited to a new account. - **Who:** The invited user - **What:** In-app and email notifications - Your account or account update is reviewed and approved. - **Who:** All account users - **What:** In-app and email notifications - A user requests to join your account. - **Who:** Account admins only - **What:** In-app and email notifications Visit [Account setup](/healthcare/account-settings) for details about managing account members and upgrading your account. ### Exports [#exports] Stedi sends notifications when your claims list or Electronic Remittance Advice (ERA) list exports are ready to download. - **Who:** The user who requested the export - **What:** In-app notifications when the export file is ready. Export files are available for 30 days. ### Billing and payments [#billing-and-payments] The billing notifications you receive depend on your pricing plan. #### Pay-as-you-go accounts [#pay-as-you-go-accounts] Stedi sends notifications when automatic recharge payments fail or when Stedi suspends your account for insufficient funds. - **Who:** Billing email address, account admins, and billing members - **What:** In-app and email notifications at the following points: - **Payment failure:** When an auto-recharge payment fails. - **Access suspended:** When your balance reaches $0 and Stedi suspends your account access. You'll also receive reminder emails after 16 days and 25 days of suspension about potential account closure if you don't resolve the issue. - **Access restored:** When your balance returns to positive and Stedi restores your access. Visit [Billing](/healthcare/billing#failed-payments) for details about failed payments and account suspension. #### Custom plan accounts [#custom-plan-accounts] Your invoices come from Stripe, our payment service provider. Stedi sends notifications when an invoice is past due and when unpaid invoices affect your account access. - **Who:** Billing email address, account admins, and billing members - **What:** In-app and email notifications at the following points: - **Invoice past due:** 7, 15, and 30 days after the due date, while the invoice remains unpaid. Stedi doesn't send these if you pay before the threshold. - **Account suspended:** When Stedi suspends your account and API access over unpaid invoices. The notification lists each unpaid invoice. - **Access restored:** When you pay the outstanding invoices and Stedi restores your access. Visit [Billing](/healthcare/billing#past-due-invoices) for details about past-due invoices and account suspension. ## Manage notification preferences [#manage-notification-preferences] You can control which notifications you receive from the [Notifications page](https://portal.stedi.com/app/settings/notifications) in your account settings. Check or uncheck the boxes to opt in or opt out for each notification category. - **Default is opt-in:** All notifications are enabled by default. - **Preferences are per user:** Your notification preferences apply across all Stedi accounts you can access. They're tied to your signed-in user, not to a specific account. - **Independent channels:** Turning off email delivery for a notification type doesn't affect in-app delivery, and vice versa. # Build an OAuth app Source: https://www.stedi.com/docs/healthcare/oauth-apps-setup Register an OAuth app with Stedi, generate install links, test the connection in your production account, and go live. This guide explains how to register an OAuth app, test it in your Stedi production account, and go live. Visit [OAuth apps](/healthcare/oauth-apps) for an overview of Stedi apps. ## Requirements [#requirements] To build an OAuth app, you need: - **A Stedi production account:** You register your app from a production account. There's no separate sandbox for apps, so you also test by installing your app into that same account. Visit [Create an account](/healthcare/account-settings#create-an-account) for instructions. - **An OAuth 2.1 library:** Any standard library that supports [Proof Key for Code Exchange](https://datatracker.ietf.org/doc/html/rfc7636) (PKCE) works. Optionally, install `curl`, `jq`, and `openssl`. The examples in this guide use these tools to show the exact HTTP request to send at each step, so you only need them to run the examples as written. You can send the same requests from your OAuth library instead. Customers can only install your app in a new Stedi account. ## Register your app [#register-your-app] Registering an app creates its listing and issues the credentials your app uses to identify and authenticate itself. New apps start in development mode, so the listing stays hidden from the Stedi Apps page until Stedi approves it. 1. Go to the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager) in your developer settings. 2. Click **Register new app**. Stedi opens the app registration form. 3. Add the app's details: - **App name:** The display name for your app on the Stedi Apps page. - **Slug:** The URL path for your app's page. - **Description:** The description that appears on your app's page. - **App logo:** A PNG file with maximum dimensions of 1024 x 1024 pixels and a maximum size of 1 MB. - **Website URL:** The website for your business. - **Support URL:** Where app users can get support from you about the app. 4. Under **OAuth Configuration**, add the callback URLs where Stedi sends customers after they authorize your app. Most apps use one, but you can add more if you test locally or run separate environments. You don't need a working handler yet, only the URL you plan to use. Callback URLs must use HTTPS, with one exception: loopback addresses can use plain HTTP, so `http://127.0.0.1:31415/callback` works for local development. Stedi logs these URLs, so don't include any sensitive values. 5. Under **App access**, open the dropdown to review the permissions your app has in customer accounts. Stedi marks each one read-only or read and write. Every app uses the same fixed permission set, so you can't change them. Visit [Permissions](#permissions) for the full list. 6. Click **Register app**. Stedi returns a **Client ID**, prefixed `stedi_cid_`, and a **Client secret**, prefixed `stedi_cs_`. Stedi shows the **Client secret** exactly once. Store the **Client secret** in your secret or password manager immediately. Stedi keeps only a keyed hash and can't show it to you again. If you lose it, create a replacement and delete the old one. Visit [Rotate your client secret](#rotate-your-client-secret) for details. Your app now appears on the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager) with an inactive approval status. Customers can't see it until Stedi approves it. ## Generate install links and handle callbacks [#generate-install-links-and-handle-callbacks] Before a customer can install your app, you must generate a link that starts the install and write a handler that turns the resulting code into an access token. ### Install link [#install-link] Customers install your app by clicking an install link. The link takes them to Stedi, where they create a Stedi account, review the permissions your app requests, and approve the install. After you register your app, go to the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager) and click your app to find its install link, along with your **Client ID** and callback URLs. The link contains `YOUR_STATE` and `YOUR_CODE_CHALLENGE` placeholders. Replace them with fresh values each time you start the flow, and make the `state` value unique and unguessable. The install link contains the following values: {/* prettier-ignore-start */} | Value | Description | | ----- | ----------- | | `response_type` | Always `code`. | | `client_id` | Your app's **Client ID**, prefixed `stedi_cid_`. | | `redirect_uri` | One of the callback URLs you registered, URL-encoded. It must match a registered URL exactly, character for character. If it doesn't match, Stedi doesn't return the customer to your app, and the customer sees a message that reads `This connection request can't be completed`. | | `scope` | Always `app:operator`, the permission set every app uses. | | `state` | A unique, unguessable value your app generates for each install. Stedi returns it unchanged on the callback, so you can confirm the response belongs to the install you started. | | `code_challenge` | The SHA-256 hash of the `code_verifier`, a secret your app generates for each install. | | `code_challenge_method` | Always `S256`. | {/* prettier-ignore-end */} A finished install link looks like the following example, with each value on its own line for readability: ``` https://portal.stedi.com/auth/oauth/authorize ?response_type=code &client_id=stedi_cid_b7e2c1d0-9f8a-4e3b-a6c5-1d2e3f4a5b6c &redirect_uri=https%3A%2F%2Fexample.com%2Fstedi%2Fcallback &scope=app:operator &state=3a7f1c92e4b8065d2f6a9c1e83b45d70 &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM &code_challenge_method=S256 ``` ### Generate a link for each install [#generate-a-link-for-each-install] For each install, your app must: 1. Generate a `code_verifier`, a secret that proves your app started this install, and store it in the customer's session. Use a high-entropy random string of 43 to 128 characters, made up of letters, digits, and the characters `-`, `.`, `_`, and `~`. 2. Hash the `code_verifier` with SHA-256 and base64url-encode the result. This is the `code_challenge`. 3. Generate a `state` value and store it in the customer's session. Use a unique, unguessable string for each install. 4. Build the install link with the `code_challenge` and `state`, then send the customer to it. Never send the `code_verifier` to the browser. Your OAuth library handles most of this. The following commands do the same thing in a terminal, so you can build a link by hand and test the flow: ```bash CLIENT_ID= REDIRECT_URI= CODE_VERIFIER=$(openssl rand -base64 60 | tr -d '\n=+/' | cut -c1-64) CODE_CHALLENGE=$(printf '%s' "$CODE_VERIFIER" | openssl dgst -binary -sha256 | openssl base64 | tr -d '\n=' | tr '+/' '-_') STATE=$(openssl rand -hex 16) AUTH_URL="https://portal.stedi.com/auth/oauth/authorize?response_type=code&client_id=$CLIENT_ID&redirect_uri=$(jq -rn --arg u "$REDIRECT_URI" '$u|@uri')&scope=app:operator&state=$STATE&code_challenge=$CODE_CHALLENGE&code_challenge_method=S256" echo "$AUTH_URL" ``` When the customer opens the link, Stedi handles the rest of the install. The customer creates a Stedi account, then approves the permissions on the consent screen. Stedi redirects them to your callback URL when they're done. ### Get access and refresh tokens [#get-access-and-refresh-tokens] Stedi redirects the customer to your callback URL with an authorization code: `?code=…&state=…`. The code is single-use and expires in 60 seconds. When your app receives the authorization code, it must exchange the code for access and refresh tokens: 1. Compare the `state` in the callback against the value you stored for this session. If they don't match, stop and don't exchange the code. 2. Find the `code_verifier` you stored alongside that `state`. 3. Post the code to Stedi's token endpoint with the `code_verifier`, your **Client ID**, your **Client secret**, and the same `redirect_uri` you used in the install link. ```bash CLIENT_SECRET= CODE= curl -sS -X POST https://oauth.us.stedi.com/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=$CODE" \ --data-urlencode "code_verifier=$CODE_VERIFIER" \ --data-urlencode "client_id=$CLIENT_ID" \ --data-urlencode "client_secret=$CLIENT_SECRET" \ --data-urlencode "redirect_uri=$REDIRECT_URI" ``` 4. Retrieve the access token and refresh token from the response and store them for that customer. A successful code exchange returns a `200` response containing the following information: {/* prettier-ignore-start */} | Property | Description | | -------- | ----------- | | `access_token` | The token your app sends in the `Authorization: Bearer ` header on Stedi API calls. | | `token_type` | Always `Bearer`. | | `expires_in` | How long the access token lasts, in seconds. For example, `900`, or 15 minutes. | | `refresh_token` | The token your app sends to get the next access token before the current one expires. Visit [Refresh access tokens](#refresh-access-tokens) for how to use it. | | `scope` | Always `app:operator`, the permission set every app uses. | | `stedi_account_id` | The customer account this connection is bound to. | {/* prettier-ignore-end */} ```json { "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJzdGVkaV9jaWRfYjdlMmMxZDAiLCJleHAiOjE3OTAxMjM0NTZ9...", "token_type": "Bearer", "expires_in": 900, "refresh_token": "stedi_rt_9f2c1d7e-4b8a-4305-9c61-2f6a9c1e83b4", "scope": "app:operator", "stedi_account_id": "7f3c1b2a-9d40-4e6f-8a11-5c2d9e7b4a03" } ``` ## Test the connection [#test-the-connection] Once you've registered your app and built the install flow, test the connection between your app and Stedi. This requires installing the app in your own production account and making a read-only API call. There's no separate sandbox for apps, and OAuth apps can't use [Test mode](/healthcare/test-mode). Every call your app makes runs against production, in a real account, where it can access protected health information (PHI). ### Install the app in your production account [#install-the-app-in-your-production-account] Newly registered apps run in development mode, where they stay unlisted and support up to 5 active installs. Use one of those installs to test your app yourself: 1. Open your install link in a browser. 2. Sign in to your Stedi production account. 3. Review the permissions on the consent screen. 4. Click **Authorize**. This is the same experience your customers have. Stedi returns you to your callback URL, where your handler [gets access and refresh tokens](#get-access-and-refresh-tokens). ### Make a test API call [#make-a-test-api-call] Once your handler exchanges the authorization code for an access token, send that token as `Authorization: Bearer ` in a test API call. We recommend a read-only call to the account where you installed the app. The following example calls the [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoint: ```bash curl -sS https://enrollments.us.stedi.com/2024-09-01/enrollments \ -H "Authorization: Bearer $ACCESS_TOKEN" ``` A `200` with an `items` array means your token works and your app can reach Stedi: ```json { "items": [], "totalCount": 0 } ``` ## Call Stedi APIs [#call-stedi-apis] Your app calls Stedi APIs to do work in your customer's account. Access tokens expire after 15 minutes. Your app must [refresh them](#refresh-access-tokens) before that. ### Permissions [#permissions] Your app operates under the `app:operator` role, the same permission set the customer approves on the consent screen. Every app uses this set, and you can't change it. **Read only** - **Account data:** Read transactions, enrollments, claims, and configuration. - **Account login:** Temporarily log in to the customer's Stedi account with the same access granted to the app. **Read and write** - **Eligibility checks:** Submit real-time and batch eligibility checks, and read responses. - **Claims:** Submit professional, institutional, and dental claims over API or SFTP. - **Enrollments:** Create and manage transaction enrollments. - **Credentials:** Create and manage FTP users and SFTP credentials. - **Account events:** Create and manage event destinations, and receive [events](/healthcare/event-destinations-event-types). ### Example request [#example-request] Every call takes the [access token](#get-access-and-refresh-tokens) as a bearer token in the `Authorization` header, in place of an API key. Apart from that header, requests are identical to the ones in the [API Reference](/healthcare/api-reference). The following request runs an eligibility check in the account that installed your app: {/* schema:CreateEligibilityCheckRequestContent */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2026-06-01/eligibility-check \ --header "Authorization: Bearer $ACCESS_TOKEN" \ --header 'Content-Type: application/json' \ --data '{ "payerId": "61101", "subscriber": { "dateOfBirth": "1975-05-05", "memberId": "HUMANA123", "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` ## Go live [#go-live] Going live lifts the install limit on your app. Make sure you've thoroughly tested your app before you go live. Once your app is live, you can't return it to development mode. To go live: 1. Open the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager), click your app, and click **Submit for approval**. Stedi reviews your app and contacts you with any questions. You can keep testing your app during the review. 2. Once Stedi approves your app, switch it to live mode. After your app is live, you can choose to list it on the Stedi Apps page. ## Manage your app [#manage-your-app] Your registered apps appear on the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager). Click an app to open its details, where you can find its install link, edit its listing, see which customers installed it, and manage its [client secrets](#app-credentials). ### Edit your app listing [#edit-your-app-listing] To edit your app listing, open the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager), click your app, and click **Edit app**. You can't change your app's name or its **Client ID**. However, you can add a callback URL at any time, including after your app goes live. New URLs take effect immediately. ### Log in to customer accounts [#log-in-to-customer-accounts] To help a customer troubleshoot, you can log in to their Stedi account from your app. Click your app on the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager), then click **Installed accounts** to see every customer account that installed your app, along with its account ID and install date. Click the ellipsis (**...**) next to an account, then click **Login to this account**. You're signed in as the customer, with your app's [permissions](#permissions). Stedi badges the session as a support session, limits how long it lasts, and audits it. ### Force uninstall your app [#force-uninstall-your-app] To remove your app from a customer's account, go to **Installed accounts**, click the ellipsis (**...**) next to the account, and click **Force uninstall**. Stedi deletes the SFTP connection and SFTP users your app created. Stedi leaves other resources in the account until someone manually deletes them. ## App credentials [#app-credentials] Your app uses four credentials, each for a different job. {/* prettier-ignore-start */} | Credential | Description | | ---------- | ----------- | | **Client ID** (`stedi_cid_`) | Stedi gives you the **Client ID** when you [register your app](#register-your-app). It identifies which app made the request. It's public, so you can put it in an install link, and your app sends it with every request to the token endpoint. | | **Client secret** (`stedi_cs_`) | Stedi shows you the **Client secret** once, when you register your app. It proves the request comes from your servers, so treat it like a password: send it only as a form field in token endpoint requests, and never put it in an install link or anywhere a browser can read it. | | **Access token** | Stedi returns the access token in the response from the token endpoint. Visit [Get access and refresh tokens](#get-access-and-refresh-tokens) for how to request it. It proves a customer authorized your app to act in their account. Send it in the `Authorization: Bearer ` header on Stedi API calls. | | **Refresh token** (`stedi_rt_`) | Stedi returns the refresh token alongside the access token. Send it as a form field to the token endpoint to get a new access token when the current one expires. Visit [Refresh access tokens](#refresh-access-tokens) for how to use it. | {/* prettier-ignore-end */} The **Client ID** and **Client secret** belong to your app, stay the same across customers, and never expire on their own. Stedi issues an access token and a refresh token per customer when that customer installs your app. ### Refresh access tokens [#refresh-access-tokens] Your app must refresh access tokens to stay connected. These limits govern how long each credential lasts, and what breaks the connection: - Access tokens are valid for 15 minutes (`expires_in` reports it as 900 seconds). - Refresh tokens last one year, and the clock resets every time you use one. An app that refreshes regularly stays connected indefinitely, with no periodic re-authorization. - Each refresh token works once. Stedi treats a consumed refresh token presented again - including one restored from a backup or snapshot - as a stolen token, revokes the connection, and makes the customer authorize your app again. A duplicate refresh within about 30 seconds succeeds without revoking anything, which covers retries and concurrent app instances. When the access token nears expiry, post the refresh token back to the token endpoint: ```bash curl -sS -X POST https://oauth.us.stedi.com/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token=$REFRESH_TOKEN" \ --data-urlencode "client_id=$CLIENT_ID" \ --data-urlencode "client_secret=$CLIENT_SECRET" ``` The response contains a fresh `access_token` and a new `refresh_token`. ### Deactivate or delete secrets [#deactivate-or-delete-secrets] You can deactivate or delete a client secret at any time. - Deactivating blocks a secret at the token endpoint, so authorization and refresh requests that use it fail. Deactivating is reversible, and the secret still counts toward your app's limit of two secrets. Access tokens your app received before you deactivate keep working until they expire. - Deleting removes a secret permanently and frees space for a new one. You can't undo it. To deactivate or delete a secret: 1. Go to the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager) and click your app. 2. Under **Client secrets**, click the ellipsis (**...**) next to the secret. 3. Click **Deactivate client secret** or **Delete client secret**. ### Rotate your client secret [#rotate-your-client-secret] Your app can have up to two secrets at once, which lets you roll over with no downtime. You can rotate your client secret in accordance with your organization's security policies. Secrets don't expire on their own. You must deactivate or delete them yourself. We recommend the following process for rotating secrets: 1. Go to the [Published apps page](https://portal.stedi.com/app/settings/developer/apps/manager) and click your app. 2. Under **Client secrets**, click **+ Create another secret**. 3. Deploy the new secret everywhere and refresh your tokens. 4. Watch the old secret's last used time stop advancing. 5. Click the ellipsis (**...**) next to the old secret and click **Deactivate client secret**. 6. Once you're certain nothing uses the old secret, click the ellipsis again and click **Delete client secret**. ## Troubleshooting [#troubleshooting] These are common errors and how to fix them: {/* prettier-ignore-start */} | Symptom | Cause and fix | | ------- | ------------- | | `400 invalid_grant` | The grant is no longer usable: an expired or already-used code, a `redirect_uri` or `code_verifier` that doesn't match the authorize request, an uninstalled app, or a revoked connection. You can't retry, so send the customer a new [install link](#install-link) to start over. If this happens on a refresh, something reused the refresh token and Stedi revoked the connection - check for restored stale tokens or concurrent refresh requests. | | `401 invalid_client` | The app's credential is wrong: a mistyped, deactivated, or deleted client secret, or a deleted app, which revokes its OAuth client. Fix the credential and retry. If a refresh that used to work starts failing, check whether someone deactivated or deleted the secret. | | Customer sees `This connection request can't be completed` | The `redirect_uri` isn't registered on the app, or doesn't match a registered URL exactly. | | `state` doesn't match on the callback | Cross-site request forgery, or your session store lost the value. Don't exchange the code. | | `401` from a Stedi API | The access token expired. [Refresh it](#refresh-access-tokens). | | `403` from a Stedi API | The token is valid, but `app:operator` doesn't allow that operation. | {/* prettier-ignore-end */} If you've worked through these and still can't resolve the issue, contact [Stedi support](https://www.stedi.com/contact). # OAuth apps Source: https://www.stedi.com/docs/healthcare/oauth-apps Build an OAuth app that connects your product to your customers' Stedi accounts. Customers authorize your app once, and it gets its own credentials. Stedi apps are integrations between Stedi and your system. Customers install your app from an install link that you share directly or embed in your platform. OAuth apps use OAuth 2.1, the industry-standard authorization protocol, to automate this connection. Your customer authorizes your app once, and your app receives its own credentials to operate in their account. ## Benefits [#benefits] OAuth apps simplify customer onboarding and reduce manual configuration work. - **One-click install:** You share an install link or embed the link in your platform. Your customers create a Stedi account, review what your app can access, and approve. For example, your app can request read and write access to send eligibility checks. - **Self-service provisioning:** Once authorized, your app calls Stedi APIs with its own token to set up what it needs in the customer's account: creating event destinations, creating SFTP users, running eligibility checks, submitting claims, and managing enrollments. - **Direct login for support:** Your support and engineering staff can open a temporary, badged, audited session in an installed customer's account to help them troubleshoot. ## How it works [#how-it-works] OAuth apps use standard OAuth 2.1 authorization code flow with [Proof Key for Code Exchange](https://datatracker.ietf.org/doc/html/rfc7636) (PKCE) without Stedi-specific extensions. You can use any OAuth client library to build your app. In the Stedi portal, provide a name, logo, description, support URL, and one or more callback URLs. Stedi issues your app's credentials. Your app starts in development mode, where it stays unlisted and supports at most 5 active installs. Generate an install link for each customer and write a handler for the callback. Stedi handles sign-up and the consent screen, then redirects to your callback URL with an authorization code. Your app exchanges that code for a bearer access token, which it uses to call Stedi APIs. Your app does work in a customer's account by calling Stedi APIs. For example, to run an eligibility check, your app sends the request with the bearer access token in place of an API key. Your app periodically refreshes the access token to stay connected, so customers don't have to re-authorize. Submit your app for review. Once Stedi approves it, switch your app to live mode to lift the install limit. You can also choose to list your app on the Stedi Apps page. Stedi delivers `app.installed` and `app.uninstalled` events to your own Stedi account, so you know when a customer connects or disconnects without polling. Customers can uninstall at any time, and your app's access ends shortly after. ## Support sessions [#support-sessions] Staff who have the [admin or developer role](/healthcare/account-settings#assign-member-roles) in your Stedi account can open a session in any customer account with your app installed, without asking for credentials or an invitation. The session includes your app's permissions, so your team can troubleshoot directly in the customer's account. Visit [Log in to customer accounts](/healthcare/oauth-apps-setup#log-in-to-customer-accounts) for instructions. ## Limitations [#limitations] Keep the following in mind as you plan your integration: - Customers can only install apps in new Stedi accounts. - When a customer uninstalls your app, Stedi deletes the SFTP connection and SFTP users your app created. Other resources remain in the account until someone removes them manually. Stedi labels these resources as managed by your app. ## Get started [#get-started] Visit [Build an OAuth app](/healthcare/oauth-apps-setup) for the full integration guide, which covers registering the app, the exact authorize and token requests, error handling, and client secret rotation. Stedi works with you through your first integration. # Get and correlate 277CAs and 835 ERAs Source: https://www.stedi.com/docs/healthcare/receive-claim-responses Retrieve 277CA claim acknowledgments and 835 ERAs from Stedi through event destinations, SFTP, or Stedi's API. After you submit a professional, dental, or institutional claim, you may receive asynchronous [277CA claim acknowledgment](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) and [835 Electronic Remittance Advice (ERA)](/healthcare/claim-responses-overview#835-electronic-remittance-advice-era) responses. If you submitted the claims through the API or UI, there are two steps to retrieve claim responses from Stedi: 1. Discover responses by polling for processed transactions or using event destinations. 1. Call Stedi APIs to retrieve processed responses from Stedi. Once you have the responses, you can correlate them with the original claim and specific service lines. If you're using a [Stedi SFTP connection](/healthcare/submit-claims-sftp-connection), you don't need to poll or call Stedi APIs to retrieve responses. Instead, you can download them from the `from-stedi` directory. ## Generate test responses [#generate-test-responses] You can send test claims that generate test 277CA and 835 ERA responses. This approach helps you validate your integration and ensure your claims workflow is working smoothly from end to end. You can retrieve test responses using test API keys and Stedi's APIs, or view them in the [claims view](https://portal.stedi.com/app/healthcare/claims) when **Test mode** is toggled to **ON**. Visit [Test claim workflows](/healthcare/test-claims-workflow) for complete instructions on sending test claims and receiving test responses. ## 277CAs in API responses [#277cas-in-api-responses] Our claim submission APIs return an initial 277CA in the `x12` property of the response body that indicates whether the claim has passed Stedi's claim edits. This 277CA is in X12 EDI format. When the claim fails one or more edits, the 277CA contains information about each error. These are the same error codes that appear in the `errors` array. Note that this initial 277CA only indicates whether Stedi has accepted or rejected the claim submission. You may receive additional 277CA acceptances or rejections as the claim is routed to the payer. You'll need to monitor for and retrieve those additional 277CAs through event destinations or polling. ```json { "status": "SUCCESS", "controlNumber": "1", "tradingPartnerServiceId": "62308", "claimReference": { "correlationId": "01KHC8Y4HNP0GVQ5NSVTPZBC0F", "patientControlNumber": "111222333", "timeOfResponse": "2026-02-13T19:51:51.496Z", "payerId": "62308", "formatVersion": "5010", "rhclaimNumber": "01KHC8Y4HNP0GVQ5NSVTPZBC0F", "serviceLines": [ { "lineItemControlNumber": "111222333" } ] }, "meta": { "traceId": "d61ca4bc-e9e7-4d0f-93d0-6f7ff810b0e6" }, "payer": { "payerName": "Cigna", "payerId": "62308" }, "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*1951*^*00501*980180479*0*T*`~GS*HN*STEDITEST*574183004559*20260213*195151*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC8YJE8EY6A5HFR00Z5H305*20260213*195151*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC8YJE8EY6A5HFR00Z5H305~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Data Health Services, Inc.*****46*123456~TRN*2*01KHC8Y4HNP0GVQ5NSVTPZBC0F~STC*A0`17`AY*20260213*WQ*109.2~QTY*90*1~AMT*YU*109.2~HL*3*2*19*1~NM1*85*2*Therapy Associates*****XX*1234567890~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*109.2~HL*4*3*PT*0~NM1*QC*1*Anon*John****MI*U7777788888~TRN*2*111222333~STC*A1`20*20260213*WQ*109.2~DTP*472*RD8*20240101-20240101~SE*25*0001~GE*1*1~IEA*1*980180479~", "httpStatusCode": "200 OK" } ``` ## Discover processed responses [#discover-processed-responses] When submitting claims through Stedi's APIs or UI, you can discover processed responses programmatically by either setting up event destinations or polling for transactions. All claim responses are also available in the Stedi portal. ### Set up event destinations [#set-up-event-destinations] You can [configure event destinations](/healthcare/event-destinations-configure) that automatically send events for processed 277CAs and 835 ERAs to your endpoint. Event destinations use [thin events](/healthcare/event-destinations-event-types#event-payload) - they notify you that a resource changed and include resource IDs, but not the full resource data. You'll use the IDs in the event to retrieve the actual transaction data. When creating an event destination, subscribe to the **transaction.processed** event type. Stedi emits these events after successfully receiving and processing a response. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction" }, "relatedResources": [ { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction.x12.277" }, { "id": "01997873-bebb-7b33-81ef-f408866dfb2c", "type": "execution" } ], "type": "transaction.processed" } ``` ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction" }, "relatedResources": [ { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction.x12.835" }, { "id": "01997873-bebb-7b33-81ef-f408866dfb2c", "type": "execution" } ], "type": "transaction.processed" } ``` As these events are emitted, you can: - Determine the transaction type from `relatedResources[].type`: `transaction.x12.277` (277CA) or `transaction.x12.835` (835 ERA). - Use the transaction ID in `relatedResources[].id` to retrieve the transaction in JSON format. Visit [Retrieve responses from Stedi](#retrieve-responses-from-stedi) for more information. - Use the execution ID in `relatedResources[].id`, the entry with `type` set to `execution`, to retrieve the transaction in X12 EDI format. Stedi treats only `2xx` responses as successful deliveries and retries failures for up to 48 hours. Your endpoint can receive the same event more than once, even after a successful delivery. We strongly recommend processing messages idempotently, so that receiving an event twice doesn't create invalid state in your system. Visit [Handle event deliveries and retries](/healthcare/event-destinations-message-handling) for details. ### Poll for transactions [#poll-for-transactions] Call the [Poll Transactions](/healthcare/api-reference/get-poll-transactions) endpoint to return a list of transactions in your Stedi account. We recommend starting your polling window at least one day before your last known processed transaction. You'll need to filter out duplicates, but this approach ensures you don't miss transactions due to boundary cases or late arrivals. Visit [Overlap your polling window](/healthcare/api-reference/get-poll-transactions#overlap-your-polling-window) for details. You must include the following information in the request: - Your Stedi API key as the `Authorization` header. - Either the `startDateTime` or `pageToken` query parameters. To retrieve a list of transactions after a specific date, use `startDateTime`. To retrieve the next page of transactions, use `pageToken` (you can find this value in the `nextPageToken` field in the response). The following example shows an API call to retrieve transactions after a specific date: ```bash curl --request GET -L \ --url https://core.us.stedi.com/2023-08-01/polling/transactions?startDateTime=2023-08-28T00:00:00Z \ --header "Authorization: ${STEDI_API_KEY}" ``` **Filter for 277CA and 835 ERA transactions** The response includes all transactions that have been sent or received, including all 837 claims you have submitted and all 277CA and 835 ERA responses you have received from payers. You must filter for transactions that match the following criteria: - `direction`: `INBOUND` - This indicates that the transaction came from the payer or intermediary clearinghouse. - `x12.transactionSetIdentifier`: `277` or `835` The following example shows a response containing a processed 277CA transaction: ```json { "items": [ { "direction": "INBOUND", "mode": "production", "fileExecutionId": "f75168e4-e682-4410-bfec-b5b1541c7f21", "transactionId": "a15b68ca-fae0-42de-b8a3-f436668b8604", "processedAt": "2023-08-28T09:00:28.354Z", "artifacts": [ { "artifactType": "application/edi-x12", "sizeBytes": 490, "usage": "input", "url": "https://core.us.stedi.com/2023-08-01/transactions/a15b68ca-fae0-42de-b8a3-f436668b8604/input" }, { "artifactType": "application/json", "sizeBytes": 51, "usage": "output", "url": "https://core.us.stedi.com/2023-08-01/transactions/a15b68ca-fae0-42de-b8a3-f436668b8604/output" } ], "partnership": { "partnershipId": "customer_availity", "partnershipType": "x12", "sender": { "profileId": "availity_sender" }, "receiver": { "profileId": "availity_receiver" } }, "x12": { "metadata": { "interchange": { "acknowledgmentRequestedCode": "0", "controlNumber": 2 }, "functionalGroup": { "controlNumber": 2, "release": "008010", "date": "2023-08-28", "time": "09:00:20", "functionalIdentifierCode": "HN" }, "transaction": { "controlNumber": "1", "transactionSetIdentifier": "277" }, "receiver": { "applicationCode": "AV01101957", "isa": { "qualifier": "ZZ", "id": "AV01101957" } }, "sender": { "applicationCode": "030240928", "isa": { "qualifier": "01", "id": "030240928" } } }, "transactionSetting": { "guideId": "01H8PSWG4ZD6QPKC9VSD42PQX3", "transactionSettingId": "01H8PSWG4ZD6QPKC9VSD42PQX3" } } } ], "nextPageToken": "945ff6de213d3ef481d028065d4c12fb996a166a3a90ef98564318decfae50ce4b36d74b7e9d9bafa6e1d169" } ``` For each matching transaction, extract the `x12.transactionSetIdentifier` type and either the `transactionId` or the `fileExecutionId` to use when mapping the data. You'll use the `transactionId` to retrieve the transaction in JSON format or the `fileExecutionId` to retrieve the transaction in X12 EDI format. Visit [Retrieve responses from Stedi](#retrieve-responses-from-stedi) for more information. Stedi does not allow you to delete transactions, so make sure you track which transaction and/or file execution IDs you've already processed. ### Stedi portal [#stedi-portal] You can review 277CAs and 835 ERAs from the [claims view](https://portal.stedi.com/app/healthcare/claims). #### 277CAs [#277cas] Click **All claims** at the top of the page to view all claims in your account. 1. Click a claim to view a timeline of its processing activity. 2. Click an **Acknowledgment** (277CA) to review its details page. Stedi displays key information about the 277CA, including the billing provider's information and status codes. #### 835 ERAs [#835-eras] Click **835 ERAs** at the top of the page to review all ERAs in your account. 1. Filter by processed date, trace number, total paid, payment date, payment method, payer, payee (billing provider), payee NPI, payee Tax ID, or PCN (Patient Control Number). 2. Click an ERA to review its details. ## Retrieve responses from Stedi [#retrieve-responses-from-stedi] You can retrieve the 277CA and 835 ERA responses from Stedi in either JSON format or X12 EDI format. ### JSON format [#json-format] Follow these steps to retrieve responses in JSON format: 1. Either [set up event destinations](/healthcare/receive-claim-responses#set-up-event-destinations) or [poll for transactions](/healthcare/receive-claim-responses#poll-for-transactions). This step lets you discover when a new 277CA or 835 ERA is ready for retrieval. 1. Retrieve the transaction ID from the `transaction.processed` event (`relatedResources[].id` property) or the Poll Transactions response (`transactionId` property). 1. Call the following endpoints to retrieve 277CA and 835 ERA responses from Stedi. In each request, you must include your Stedi API key in the `Authorization` header and the `transactionId` query parameter containing the ID of the transaction you want to retrieve. - [Get 277CA Report](/healthcare/api-reference/get-healthcare-reports-277): Retrieve 277CA responses - [Get 835 ERA Report](/healthcare/api-reference/get-healthcare-reports-835): Retrieve 835 ERA responses ### X12 EDI format [#x12-edi-format] Follow these steps to retrieve the responses in X12 EDI format: 1. Either [set up event destinations](#set-up-event-destinations) or [poll for transactions](#poll-for-transactions) to discover when a new 277CA or 835 ERA is ready for retrieval. 1. Retrieve the file execution ID from the `transaction.processed` event (`relatedResources[].id` for the entry with `type` set to `execution`) or the Poll Transactions response (`fileExecutionId` property). 1. Call the [Retrieve File Execution Input](/healthcare/api-reference/get-execution-input) endpoint to retrieve the 277CA or 835 ERA in X12 EDI format. In the request, you must include your Stedi API key in the `Authorization` header and the `executionId` query parameter containing the file execution ID for the response you want to retrieve. ### 835 ERA PDF [#835-era-pdf] Stedi autogenerates a PDF version of each processed 835 ERA. To retrieve the PDF programmatically, call the [835 ERA PDF](/healthcare/api-reference/get-era-pdf) endpoint. ```bash curl --request GET \ --url "https://healthcare.us.stedi.com/2024-04-01/electronic-remittance-advice/{transactionId}/pdf" \ --header "Authorization: Key " \ --header "Accept: application/pdf" ``` Replace `{transactionId}` with the 835 ERA's transaction ID. Stedi includes this ID in the `transaction.processed` event for the ERA, which you can receive automatically through Stedi [event destinations](/healthcare/event-destinations-configure). You can also retrieve this ID through the [Poll Transactions](/healthcare/api-reference/get-poll-transactions) endpoint. By default, the endpoint returns the PDF as a base64-encoded string. To receive the unencoded PDF data, include the `Accept: application/pdf` request header as shown in the example. To download the PDF from the Stedi portal: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click **835 ERAs**. 2. Click the ERA to open its details page. 3. Click **Download 835 ERA PDF** at the top right. 4. In the download menu, select your preferences: - **Include Stedi logo in 835 ERA PDF**: Adds the Stedi logo to the PDF. - **Download each claim as a separate PDF**: Downloads one PDF for each claim included in the ERA. When the ERA contains multiple claims, the PDFs will be provided as a zip file. For example, if the ERA contains 5 claims, you'll download a zip file containing 5 separate PDFs. 5. Click **Confirm PDF download**. You can also download a PDF for an individual claim payment information record. From the ERA details page, click a row in the claim payment information table to open the claim payment information details, then click **Download as PDF** at the top right. #### Format [#format] The PDF contains a human-readable version of the ERA, including payment details, adjustments, and explanations for each service line. It resembles the Standard Paper Remittance (SPR) format that the Centers for Medicare and Medicaid Services (CMS) uses for ERA PDFs, regardless of which payer sent the ERA. This is a PDF representation of the 835 ERA - it's not the same as an Explanation of Benefits (EOB) that you may receive from the payer. - **EOB:** A statement from a payer explaining how a medical claim was processed, including what was covered, denied, and the remaining patient responsibility. The patient receives an EOB after a claim has been adjudicated. - **EOP:** A version of the EOB for the provider. It contains more information related to how the payer has adjudicated the claim. The provider receives the EOP after claim adjudication and payment are sent. - **ERA:** An electronic file that details payment and claim adjustment information. The provider receives the ERA after the payer has adjudicated the claim and issued payment, typically at the same time the funds are deposited electronically. ### Delimiter normalization [#delimiter-normalization] Stedi reserves certain characters for delimiters in X12 EDI transactions. When these delimiter characters appear within data values - meaning they're used as content and not as actual delimiters, such as within a subscriber's name - Stedi replaces them to prevent parsing issues. Stedi normalizes delimiters within transaction data as follows: | Character found in data | Replacement | Stedi's reserved delimiter type it conflicts with | | ----------------------- | ----------- | ------------------------------------------------- | | `*` | `\|` | Element separator | | `^` | `\|` | Repetition separator | | `` ` `` | `'` | Component element separator | | `~` | `\|` | Segment terminator | **Examples:** - `O*CONNOR` becomes `O|CONNOR` - `CODE^01` becomes `CODE|01` - ``O`CONNOR`` becomes `O'CONNOR` - `MSG~HELLO` becomes `MSG|HELLO` If you parse raw X12 EDI responses, ensure your parser reads delimiters from the `ISA` segment instead of assuming fixed delimiters. ## Determine 277CA sender [#determine-277ca-sender] To determine whether a 277CA is from a clearinghouse or the payer: - **JSON:** Check the [`transactions[].payers` array](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers) in the report (`Loop 2100A`). The `organizationName` property contains the name of the sender (for example, CIGNA or STEDI). - **X12 EDI:** Check `Loop 2100A NM103` (Information Source Name). You can also find this information in the Stedi portal: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Find the associated claim and click it to view the claim timeline. 3. Find the 277CA in the timeline view. The **From** field indicates whether the acknowledgment is from Stedi or the payer. ![277CA claim timeline](/images/providers/277CA-claim-timeline.png) ## Correlate 277CA [#correlate-277ca] Use the following identifiers to correlate the 277CA with the original claim. ### Entire Claim [#entire-claim] #### Option 1: Patient Control Number [#option-1-patient-control-number] Use the Patient Control Number from the original claim, if you provided one in the claim submission. **Original claim:** - **X12:** `Loop 2300 CLM01` (Patient Control Number) **Providers:** Don't use `Loop 2300 REF02` when `REF01` = `D9` (Claim Identifier for Transmission Intermediaries). This segment is reserved for clearinghouses and intermediaries. - **JSON:** `claimInformation.patientControlNumber` **In 277CA:** - **X12:** `Loop 2200D TRN02` (Patient Control Number) - **JSON:** `transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails.claims[]` - either `claimStatus.patientAccountNumber` or `referencedTransactionTraceNumber` We recommend using the `referencedTransactionTraceNumber`. When matching: - Treat the patient control number as case-insensitive, even if the submitted value included both lower and uppercase characters. - Some payers truncate patient control numbers greater than 30 characters in 277CAs. If you're not getting a match, try matching against the first 30 characters of the value you submitted. - Some payers batch acknowledgments for multiple claims into a single 277CA. In these cases, the 277CA will contain multiple `patientClaimStatusDetails` objects (or multiple iterations of `Loop 2200D` in X12 EDI), each with its own `referencedTransactionTraceNumber` (`TRN02`). #### Option 2: Stedi's Correlation ID [#option-2-stedis-correlation-id] If you didn't supply a patient control number, you can use the tracking number Stedi assigns to the claim when it's submitted. **In the API response:** For both the JSON and raw X12 API endpoints: `claimReference.correlationId` **In 277CA:** - **X12:** `Loop 2200B TRN02` (Claim Transaction Batch Number) - **JSON:** `transactions[].payers[].claimStatusTransactions[].claimTransactionBatchNumber` ### Service line [#service-line] Different claim types use different names for the same identifier. **Original claim:** - **X12:** `Loop 2400 REF02` (Line Item Control Number) - **JSON professional and dental claims:** `claimInformation.serviceLines.providerControlNumber` - **JSON institutional claims:** `claimInformation.serviceLines.lineItemControlNumber` **In 277CA:** - **X12:** `Loop 2220D REF02` (Line Item Control Number) - **JSON:** `transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails.claims[].serviceLines[].lineItemControlNumber` This identifier is **sometimes** returned in the 277CA. It's not always present because a 277CA only contains service line information (`serviceLines` object or `Loop 2220D` in X12 EDI) when the claim was rejected because of issues with the information provided for the service line. If the `lineItemControlNumber` isn't present, you can only correlate the 277CA at the claim level. The following example shows: - A `serviceLines` object with `lineItemControlNumber` - The `REF` segment in `Loop 2220D` containing the line item control number in `REF02` Both indicate that the claim was rejected. {/* schema:ClaimAcknowledgmentServiceLines:unwrapArray */} ```json "serviceLines": [ { "beginServiceLineDate": "20250602", "lineItemControlNumber": "1", "service": { "chargeAmount": "100", "procedureCode": "99213", "serviceIdQualifierCode": "HC", "serviceIdQualifierCodeValue": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes", "submittedUnits": "1" }, "serviceClaimStatuses": [ { "serviceStatuses": [ { "healthCareClaimStatusCategoryCode": "A7", "healthCareClaimStatusCategoryCodeValue": "Acknowledgement/Rejected for Invalid Information - The claim/encounter has invalid information as specified in the Status details and has been rejected.", "statusCode": "454", "statusCodeValue": "Procedure code for services rendered." } ], "statusMessage": "Procedure code is invalid 99213. Correct and resubmit." } ] } ] ``` ``` SVC*HC`99213*100*****1~ // procedure code, charge amount, units STC*A7`454**U*********Procedure code is invalid 99213. Correct and resubmit.~ // status codes and message REF*FJ*1~ // line item control number DTP*472*D8*20250602~ // date of service ``` ## Interpret 277CA claim status [#interpret-277ca-claim-status] The 277CA tells you whether Stedi or the payer accepted or rejected a claim for processing. Visit [Interpret claim status](/healthcare/claim-status-codes#277ca-claim-acknowledgments) to learn where to find the status codes in a 277CA, what they mean, and how to handle common rejections. ## Correlate 835 ERA [#correlate-835-era] Use the following identifiers to correlate the 835 ERA with the original claim. Sometimes, payers send [duplicate ERAs](#duplicate-eras) for the same claim. You should have logic in place to identify and manage these duplicates. ### Entire claim [#entire-claim-1] Use the Patient Control Number from the original claim. **Original claim:** - **X12:** `Loop 2300 CLM01` (Patient Control Number) - **JSON:** `claimInformation.patientControlNumber` **In 835 ERA:** - **X12:** `Loop 2100 CLP01` (Patient Control Number) - **JSON:** `transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.patientControlNumber` When matching transactions, treat the patient control number as case-insensitive, even if the submitted value included both lower and uppercase characters. ### Service line [#service-line-1] Different claim types use different names for the same identifier. **Original claim:** - **X12:** `Loop 2400 REF02` (Line Item Control Number) - **JSON professional and dental claims:** `claimInformation.serviceLines[].providerControlNumber` - **JSON institutional claims:** `claimInformation.serviceLines[].lineItemControlNumber` **In 835 ERA:** - **X12:** `Loop 2110 REF02` (Line Item Control Number) - **JSON:** `transactions[].detailInfo[].paymentInfo[].serviceLines[].lineItemControlNumber` {/* schema:ClaimPaymentAdviceServiceLines:unwrapArray */} ```json "serviceLines": [ { "lineItemControlNumber": "111222333", "serviceAdjustments": [ { "adjustmentAmount1": "300", "adjustmentReasonCode1": "1", "claimAdjustmentGroupCode": "PR", "claimAdjustmentGroupCodeValue": "Patient Responsibility" } ], "serviceDate": "20190301", "servicePaymentInformation": { "adjudicatedProcedureCode": "99211", "lineItemChargeAmount": "800", "lineItemProviderPaymentAmount": "500", "productOrServiceIDQualifier": "HC", "productOrServiceIDQualifierValue": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes" }, "serviceSupplementalAmounts": { "allowedActual": "800" } } ] ``` ``` SVC*HC>99211*800*500~ // procedure code and payment info DTM*472*20190301~ // service date CAS*PR*1*300~ // adjustment REF*6R*111222333~ // line item control number AMT*B6*800~ // actual allowed amount ``` ### Duplicate ERAs [#duplicate-eras] Payers typically only send one ERA per claim. However, they may occasionally retransmit another identical 835 ERA, so you should have logic in place to handle these duplicates. You can assume an ERA is a duplicate if the Check or EFT Trace Number is the same: - **X12:** `TRN02` (Check or EFT Trace Number) in the `TRN` (Reassociation Trace Number) segment - **JSON:** `transactions[].paymentAndRemitReassociationDetails.checkOrEFTTraceNumber` ## Crossover claims [#crossover-claims] A claim is called a crossover claim when it is adjudicated by one payer and then forwarded to another payer for additional processing. This is common in coordination of benefits (COB) situations, where a patient has multiple insurance policies. For example, a patient may have coverage through both Medicare and private supplemental insurance. Once Medicare adjudicates the claim, it "crosses over" electronically to the secondary payer. This process helps reduce paperwork for providers and ensures the patient is billed correctly for any remaining balance. You'll know a claim has been sent to a crossover payer when you receive an 835 ERA with the Claim Status Code set to either `19`, `20`, or `21`: - **X12:** `Loop 2100 CLP02` (Claim Status Code) - **JSON:** [`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.claimStatusCode`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimPaymentInfo.claimStatusCode) The ERA should also include information about the crossover payer: - **X12:** `Loop 2100` (Crossover Carrier Name) - **JSON:** [`transactions[].detailInfo[].paymentInfo[].crossoverCarrier`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.crossoverCarrier) Sometimes, the different payers are separate legal entities within the same parent corporation. If not, you'll need to [enroll](/healthcare/transaction-enrollment) the provider separately with the crossover payer before they can process the claim. The payer may pause claim processing until the enrollment is complete or reject the claim. If the claim is rejected, you'll need to manually resubmit it once the enrollment is live. [Stedi support](https://www.stedi.com/contact) can help you determine when you need to enroll with a crossover payer and determine the status of crossover claims while the enrollment is in progress. You may receive an additional 835 ERA and/or 277CAs from the crossover payer. You may also be able to use the information from any 277CAs to submit real-time claim status requests for the crossover claim. # Resubmit or cancel claims Source: https://www.stedi.com/docs/healthcare/resubmit-cancel-claims Resubmit rejected claims or cancel claims through Stedi, before or after the payer adjudicates them. You'll need to resubmit claims when they're rejected due to correctable errors, such as: - Invalid or missing data. - Incorrect patient or provider details. - Incorrect billing codes or modifiers. - Missing documentation or attachments the payer requires. You may also need to cancel duplicate claims or claims that were submitted in error, such as accidentally billing for the wrong provider or patient. ## Pre-adjudication vs. adjudication [#pre-adjudication-vs-adjudication] When resubmitting claims, you need to know whether your claim is pre-adjudication or in adjudication. | Stage | Definition | How you'll know | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Pre-adjudication | The claim hasn't entered the payer's adjudication system. This includes claims the payer has received and then rejected based on front-end edits. |
  • You received a 277CA claim acknowledgment from Stedi or the payer. Payer rejections may include a message, such as "returned as unprocessable" or "not entered into processing system."
  • The payer's 277CA doesn't contain a [Payer Claim Control Number (PCCN)](#payer-claim-control-number-pccn).
| | Adjudication | The claim has entered the payer's adjudication system. This includes claims that were rejected during adjudication, claims still in progress (for example, in **Pending** status), and claims that completed adjudication (resulting in an 835 ERA). |
  • The payer's 277CA contains a [Payer Claim Control Number (PCCN)](#payer-claim-control-number-pccn), indicating it has entered the payer's system. OR
  • You ran a real-time claim status check that included a PCCN in the response. OR
  • You received an 835 Electronic Remittance Advice (ERA) from the payer with adjudication details. All 835 ERAs include a PCCN.
| The following diagram illustrates the claim submission lifecycle and the responses you can expect to receive at each stage. ![Claim response lifecycle](/images/healthcare-apis/claim-response-lifecycle.png) ## Preparing claim resubmissions or cancellations [#preparing-claim-resubmissions-or-cancellations] Stedi's guidance for resubmissions varies depending on three factors: - **Whether the claim has entered the payer's adjudication system** - Visit [Pre-adjudication vs. adjudication](#pre-adjudication-vs-adjudication) to determine where your claim is in the lifecycle. - **Whether you're resubmitting to Medicare** - Medicare Part A and Part B (processed through MACs) have different requirements than other payers. Visit [Medicare resubmission](#medicare-resubmission) for details. - **Claim type** - Institutional claims have different requirements than professional or dental claims. Visit [Institutional claims](#institutional-claims) for details. These factors determine which codes and identifiers to include in the resubmission: - The proper [Claim Frequency Code (CFC)](#claim-frequency-code-cfc) - indicates the type of submission - The [Payer Claim Control Number (PCCN)](#payer-claim-control-number-pccn), if appropriate - the payer's unique identifier for your claim - The appropriate [Patient Control Number (PCN)](#patient-control-number-pcn) - your unique identifier for the claim You'll also need to include any necessary corrections to the claim data. ### Claim Frequency Code (CFC) [#claim-frequency-code-cfc] The Claim Frequency Code (CFC) indicates the type of claim submission. It's what tells the payer the claim is an original, a replacement, or a cancellation. | Scenario | CFC Guidance | | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Pre-adjudication (all payers) |
  • **Professional/Dental:** `1` (Admit thru Discharge Claim)
  • **Institutional:** CFC from original submission
| | Adjudication, non-Medicare |
  • **All claim types:** `7` (Replacement of Prior Claim) or `8` (Void/Cancel of Prior Claim)
  • Resubmission requirements can vary by payer. Always confirm this guidance with the payer's companion guide.
| | Adjudication, Medicare |
  • **Professional/Dental:** `1` (Admit thru Discharge Claim)
  • **Institutional:** CFC from original submission
| #### Set the CFC [#set-the-cfc] You can set the Claim Frequency Code (CFC) in the following locations: - **JSON:** `claimInformation.claimFrequencyCode` property - **X12 EDI:** `Loop 2300 CLM05-03` (Claim Frequency Code) component - **CMS-1500 claim form UI:** Set the **Qualifier** in **Box 22** (Resubmission code) #### Institutional claims [#institutional-claims] Institutional claims support a broader set of Claim Frequency Code (CFC) values than professional or dental claims. For example, in long term care settings, facilities commonly submit interim claims every 30 days to receive partial payments while the patient is still admitted, rather than waiting until the end of the patient's stay. The CFC codes for these interim claims are `2` (Interim - First Claim), `3` (Interim - Continuing Claims), or `4` (Interim - Last Claim). Therefore, the guidance for institutional claim CFCs is different from professional and dental claims. Specifically, for claims in pre-adjudication or Medicare claims in adjudication, you should resubmit with the same CFC you used in the original submission. ### Payer Claim Control Number (PCCN) [#payer-claim-control-number-pccn] The Payer Claim Control Number (PCCN) is the unique identifier the payer assigns when your claim enters their adjudication system. It's different from the [Patient Control Number](#patient-control-number-pcn) you sent in the original claim and the Stedi-generated `controlNumber` returned in the API response. | Scenario | PCCN Guidance | | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Pre-adjudication (all payers) | Don't include a PCCN. The claim hasn't entered the payer's adjudication system yet, so no PCCN exists. | | Adjudication, non-Medicare | Include the PCCN the payer returned in [one or more responses](#find-existing-pccn) to the original claim. Without the PCCN, the payer won't know which claim to replace or cancel. | | Adjudication, Medicare | Don't include the PCCN. Medicare explicitly instructs providers to omit it when resubmitting claims. Visit [Medicare resubmission](#medicare-resubmission) for details. | #### Set the PCCN [#set-the-pccn] You can supply the Payer Claim Control Number (PCCN) in the following locations: - **JSON:** `claimInformation.claimSupplementalInformation.claimControlNumber` - **X12 EDI:** `Loop 2300 REF02`, where `REF01` = `F8` (Original Reference Number) - **CMS-1500 claim form UI:** Set the **Original reference number** in **Box 22** (Resubmission code) #### Find existing PCCN [#find-existing-pccn] You can retrieve the Payer Claim Control Number (PCCN) from the following transactions. **277CA claim acknowledgment from the payer** - **JSON:** [`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.tradingPartnerClaimNumber`](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.tradingPartnerClaimNumber) - **X12 EDI:** `Loop 2200D REF02`, where `REF01` = `1K` (Payor's Claim Number) - **Stedi portal:** Go to the [claims view](https://portal.stedi.com/app/healthcare/claims), click the claim to open its timeline, and click **See more detail** on the 277CA. The PCCN is listed under **Payer claim control number** if available. **277 real-time claim status response** - **JSON:** [`claims[].claimStatus.tradingPartnerClaimNumber`](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-claim-status#response.claims.claimStatus.tradingPartnerClaimNumber) - **X12 EDI:** `Loop 2200D` or `Loop 2200E` in `REF02`, where `REF01` = `1K` (Payor's Claim Number) **835 Electronic Remittance Advice (ERA)** - **JSON:** [`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.payerClaimControlNumber`](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo[].paymentInfo[].claimPaymentInfo.payerClaimControlNumber) - **X12 EDI:** `Loop 2100 CLP07` (Payer Claim Control Number) - **Stedi portal:** Go to the [claims view](https://portal.stedi.com/app/healthcare/claims), click **835 ERAs**, and click the ERA to open it. On the **Overview** tab, the PCCN is in the **Claims** section in the **Payer Claim Control Number** column for each claim. ### Patient Control Number (PCN) [#patient-control-number-pcn] The Patient Control Number (PCN) is a unique identifier you assign to the claim. The payer returns this value in related transactions, such as the 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA), so you can correlate responses with the original claim. | Scenario | PCN Guidance | | ----------------------------- | ------------------------------- | | Pre-adjudication (all payers) | Same PCN as original submission | | Adjudication, Medicare | Same PCN as original submission | | Adjudication, non-Medicare | New, unique PCN | Reuse the same PCN from the original submission for pre-adjudication resubmissions and adjudication Medicare resubmissions. Stedi uses the PCN to match claims and resubmissions in the claims view, so reusing the PCN allows Stedi to show the original claim and resubmissions within a unified claim timeline. Reusing the PCN also helps you track the claim throughout the resubmission process. Use a new, unique PCN for adjudication non-Medicare resubmissions. In this scenario, a new PCN helps you avoid potential duplicate claim errors from the payer. A new PCN also helps you differentiate between the 835 Electronic Remittance Advice (ERAs) for the original submission and the resubmission. #### Set the PCN [#set-the-pcn] You can set the PCN in the following locations: - **JSON:** `claimInformation.patientControlNumber` - **X12 EDI:** `Loop 2300 CLM01` (Patient Control Number) - **CMS-1500 claim form UI:** Set **Box 26** (Patient account number) #### PCN format [#pcn-format] When assigning a PCN, follow these best practices: - Use a unique PCN for each claim. The identifier should be more complex than a simple sequential number and should be hard to guess. - Use random strings. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters available in the [basic character set](#character-set) to create a strong, unique 17-character PCN for each claim. - Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](#character-restrictions), and avoid special characters that are only available in the extended character set. Payers are permitted to return data using the basic character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - Treat PCN values as case-insensitive when matching transactions, even if the submitted value included both lower and uppercase characters. ## Resubmit or cancel claims [#resubmit-or-cancel-claims] Ensure that the updated claim includes: - [Claim Frequency Code](#claim-frequency-code-cfc) according to the claim's processing status and your use case - [Payer Claim Control Number (PCCN)](#payer-claim-control-number-pccn), if applicable - [Patient Control Number](#patient-control-number-pcn) (recommended) - Any other necessary corrections to the claim Once you've prepared the updated claim, you can resubmit it through the Stedi API, an SFTP connection, or the Stedi portal. The resubmission process is the same for both corrections and cancellations - the Claim Frequency Code indicates which action you want to take. ### API resubmission [#api-resubmission] Resubmit through one of Stedi's claim submission endpoints: - [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) - [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) - [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) - [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) - [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12) - [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims) - [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12) ### SFTP resubmission [#sftp-resubmission] Visit [SFTP submission](/healthcare/submit-claims-sftp-connection) for details on how to format and submit X12 EDI claims through SFTP. ### CMS-1500 form (professional) [#cms-1500-form-professional] Stedi's CMS-1500 claim form UI is mostly limited to the CMS-1500 form fields. It may not be able to successfully resubmit complex claims originally submitted through our APIs or SFTP. To resubmit a professional claim through Stedi's interactive CMS-1500 form: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click the claim you want to resubmit to open its timeline. 2. Hover over the claim submission and do one of the following: - Click **Edit and resubmit**. This option appears when the last claim submission was rejected by either Stedi or the payer. - Click **See more detail** to review the claim's details page, then click **Edit and resubmit**. 3. Select **CMS-1500 resubmission**. Stedi opens the interactive CMS-1500 form prepopulated with the claim's information and shows any errors, including failed claim edits. ![Claim resubmission CMS-1500 form](/images/providers/cms-1500-claim-resubmission.png) 4. Make any necessary changes to the claim. - Make sure to update the Claim Frequency Code, the Payer Claim Control Number, and the Patient Control Number according to best practices. - Click **Claims timeline** to open a side panel with the claim's activity. You can review related 277CA claim acknowledgments containing the errors you need to address before resubmitting. Hover over a transaction and click **See more detail** to review its details. 5. Click **Submit claim**. Stedi resubmits the updated claim to the payer once it passes validation. The updated claim appears on the [claims view](https://portal.stedi.com/app/healthcare/claims) within a few minutes. The claim timeline shows that this claim is a resubmission along with the original claim and any associated responses. You'll receive new 277CA claim acknowledgments indicating whether the resubmitted claim was accepted or rejected. ### X12 EDI editor [#x12-edi-editor] To resubmit a professional, dental, or institutional claim through Stedi's X12 EDI editor: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click the claim you want to resubmit to open its timeline. 2. Hover over the claim submission and do one of the following: - Click **Edit and resubmit**. This option appears when the last claim submission was rejected by either Stedi or the payer. - Click **See more detail** to review the claim's details page, then click **Edit and resubmit**. 3. Select **X12 transaction resubmission**. Stedi opens the claim in an interactive editor with the X12 EDI on the left and the EDI specification on the right. As you hover over different parts of the EDI, Stedi highlights the corresponding part of the specification on the right to help you understand what each part of the EDI means and how to edit it correctly. ![X12 EDI editor](/images/providers/x12-claim-resubmission.png) 4. Make changes to the claim EDI. - You can type directly in the EDI editor or copy and paste updated EDI from another source. - Make sure to update the Claim Frequency Code, the Payer Claim Control Number, and the Patient Control Number according to best practices. - Click **Claims timeline** to open a side panel with the claim's activity. You can review related 277CA claim acknowledgments containing the errors you need to address before resubmitting. Hover over a transaction and click **See more detail** to review its details. 5. Click **Review and submit**. Stedi shows a comparison of the original claim and the new claim containing your changes. 6. Click **Resubmit claim** to send the updated claim to the payer. The updated claim appears on the [claims view](https://portal.stedi.com/app/healthcare/claims) within a few minutes. The claim timeline shows that this claim is a resubmission along with the original claim and any associated responses. You'll receive new 277CA claim acknowledgments indicating whether the resubmitted claim was accepted or rejected. ## Medicare resubmission [#medicare-resubmission] Medicare Part A and Part B (processed through MACs) have different requirements for resubmissions and cancellations than non-Medicare payers. Non-Medicare includes all other payers, such as commercial insurance and Medicaid. - Medicare does not accept Claim Frequency Codes `7` or `8` for resubmissions. For professional and dental claims, resubmit with Claim Frequency Code `1`. For institutional claims, resubmit with the same Claim Frequency Code as the original submission. - Don't include the original claim's Payer Claim Control Number (PCCN) when resubmitting, even if one is available. ## Determine 277CA sender [#determine-277ca-sender] To determine whether a 277CA is from a clearinghouse or the payer: - **JSON:** Check the [`transactions[].payers` array](https://www.stedi.com/docs/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers) in the report (`Loop 2100A`). The `organizationName` property contains the name of the sender (for example, CIGNA or STEDI). - **X12 EDI:** Check `Loop 2100A NM103` (Information Source Name). You can also find this information in the Stedi portal: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Find the associated claim and click it to view the claim timeline. 3. Find the 277CA in the timeline view. The **From** field indicates whether the acknowledgment is from Stedi or the payer. ![277CA claim timeline](/images/providers/277CA-claim-timeline.png) ## Character restrictions [#character-restrictions] Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause errors. The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included. The following special characters are included: ![Basic special characters](/images/basic-special-characters.png) The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`. The following additional special characters are included: ![Extended special characters](/images/extended-special-characters-healthcare.png) In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, `^`, and `>`. X12 doesn't support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly. - **JSON and CMS-1500 form:** Don't include delimiter characters anywhere in your request data. - **Raw X12:** You can use these characters as delimiters, but not in the body of the request data. # Software Development Kits (SDKs) Source: https://www.stedi.com/docs/healthcare/sdks Official Stedi SDKs for TypeScript and Python Stedi provides official Software Development Kits (SDKs) for TypeScript and Python. These SDKs handle serialization, retries, error handling, and type safety, so you can focus on building your application. ## TypeScript [#typescript] The TypeScript SDK provides full type definitions and autocomplete support for all API operations. ```bash npm install @stedi/sdk # or: yarn add @stedi/sdk # or: pnpm add @stedi/sdk ``` **npm:** [@stedi/sdk](https://www.npmjs.com/package/@stedi/sdk) ## Python [#python] The Python SDK includes type hints and integrates with modern Python tooling. ```bash pip install stedi # or: uv add stedi # or: poetry add stedi ``` **PyPI:** [stedi](https://pypi.org/project/stedi/) ## Available APIs [#available-apis] Stedi SDKs support the following APIs: ### Claims [#claims] #### Professional claims [#professional-claims] Submit professional claims in JSON format modeled after the CMS-1500 form structure. These operations are especially useful when you want to build a CMS-1500 form interface in your application. They're also useful when you're building an integration using AI agents, which are likely familiar with the data fields and requirements of the CMS-1500 form. - `CreateProfessionalClaim` - Submit professional claims to payers in a JSON format modeled after the CMS-1500 form. | [API reference](/healthcare/api-reference/post-create-professional-claim-json) - `ValidateProfessionalClaim` - Validate claim data without submitting it to payers. Use this to test your integration and catch errors early. | [API reference](/healthcare/api-reference/post-validate-professional-claim-json) - `GetProfessionalClaim` - Retrieve a claim submission in JSON format. Use this to pre-populate resubmission forms with the original claim data. | [API reference](/healthcare/api-reference/get-professional-claim-json) #### Claims lifecycle [#claims-lifecycle] Retrieve claim summary information programmatically to monitor claims, build dashboards, or integrate with your systems. - `ListClaims` - Retrieve a paginated list of claim records with filters for status, patient control numbers, and submission date ranges. | [API reference](/healthcare/api-reference/list-claims) - `GetClaim` - Retrieve a single claim record with summary information about its most recent submission, including processing status, charge and paid totals, patient name, dates of service, and claim type. | [API reference](/healthcare/api-reference/get-claim-record) - `GetClaimTimeline` - Retrieve a paginated history of a claim's timeline entries including submissions, 277CA claim acknowledgments, and claim payment information from Electronic Remittance Advice (ERAs). | [API reference](/healthcare/api-reference/get-claim-timeline) ### Eligibility [#eligibility] Send real-time eligibility checks in JSON format. - `CreateEligibilityCheck` - Submit real-time eligibility checks to payers in JSON format. | [API reference](/healthcare/api-reference/post-eligibility-check) ### Event Destinations [#event-destinations] Configure [event destinations](/healthcare/event-destinations-configure) that automatically send Stedi events to your endpoint. Use these operations to create, configure, and monitor event destinations and secrets. - `CreateEventDestination` - Create a new event destination to receive Stedi events. | [API reference](/healthcare/api-reference/post-event-destinations-create-destination) - `ListEventDestinations` - Retrieve a paginated list of all destinations configured for your account. | [API reference](/healthcare/api-reference/get-event-destinations-list-destinations) - `GetEventDestination` - Retrieve details for a specific destination. | [API reference](/healthcare/api-reference/get-event-destinations-destination) - `UpdateEventDestination` - Update an existing destination's configuration. | [API reference](/healthcare/api-reference/post-event-destinations-update-destination) - `DeleteEventDestination` - Delete an event destination. | [API reference](/healthcare/api-reference/delete-event-destinations-destination) - `GetEventDestinationSecret` - Retrieve the signing secret for a destination to verify event payloads. | [API reference](/healthcare/api-reference/get-event-destinations-destination-secret) - `RotateEventDestinationSecret` - Rotate the signing secret for a destination. | [API reference](/healthcare/api-reference/post-event-destinations-rotate-destination-secret) - `ListEventDestinationEvents` - Retrieve a paginated list of events sent to your destinations. | [API reference](/healthcare/api-reference/get-event-destinations-list-events) - `GetEventDestinationEvent` - Retrieve details for a specific event including its delivery status. | [API reference](/healthcare/api-reference/get-event-destinations-event) ## Versioning and compatibility [#versioning-and-compatibility] We strive to maintain backwards compatibility. We consider the following changes backwards compatible and do not require a major version update: - New API operations - Additional optional parameters - Additional fields in responses - Changes in the order of properties in responses - Downgrading mandatory parameters to optional parameters When we introduce a breaking change, we release a new major version of the SDK. You can continue using previous major versions, but we recommend upgrading to take advantage of new features and improvements. Upgrade regularly to stay current with API changes and access new features as they become available. ## Need another language? [#need-another-language] We're expanding SDK support. [Let us know](https://www.stedi.com/contact) which languages you'd like to see next. # Submit eligibility checks - Manual Source: https://www.stedi.com/docs/healthcare/send-eligibility-checks-ui You can submit real-time eligibility checks manually through the Stedi portal. Manual eligibility checks are useful for testing and for situations when you need to do a one-time eligibility check. One form handles both ways of submitting a check. Complete the eligibility check form, then choose how to run it under **Run as**: - **[Agentic Discovery](#agentic-discovery-recommended)** (recommended) - An automated workflow that runs eligibility checks, recovers from failures, and runs [insurance discovery](/healthcare/insurance-discovery) if needed. - **[Single eligibility check](#standard-eligibility-checks)** - Stedi runs one standard eligibility check with the information you provide. You're responsible for retrying and troubleshooting errors manually. Before submitting eligibility checks, check whether your payers require transaction enrollment. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Most payers don't require transaction enrollment for eligibility checks. Those that do, such as the Centers for Medicare & Medicaid Services (CMS), typically allow multiple enrollments with different clearinghouses. That means enrolling through Stedi shouldn't cancel or interfere with any existing enrollments you have through other clearinghouses. Enrolling through Stedi for real-time eligibility checks also doesn't affect your existing enrollments for other transaction types. For example, enrolling with Stedi won't unenroll the provider from receiving transactions like Electronic Remittance Advices (ERAs) through other clearinghouses. You can check whether a specific payer requires enrollment for eligibility checks in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for real-time eligibility checks. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) We also recommend enrolling with the Stedi Insurance Discovery payer (payer ID: `DISCOVERY`). Enrollment allows Stedi to run Medicare Beneficiary Identifier (MBI) lookups as part of insurance discovery checks, which can improve results when searching for Medicare coverage. Visit [Transaction enrollment](/healthcare/transaction-enrollment) to learn how to enroll. ## Agentic Discovery (recommended) [#agentic-discovery-recommended] Agentic Discovery isn't available in test mode or in sandbox accounts. If you want to send mock checks in test mode, run [standard eligibility checks](#standard-eligibility-checks) instead. Agentic Discovery is the recommended way to run eligibility checks in the Stedi portal. It automates the entire workflow of finding a patient's coverage and benefits. You're more likely to successfully find coverage and get benefits details using Agentic Discovery than by running a single standard eligibility check. When you start an Agentic Discovery check, the Stedi Agent runs an eligibility check. If the check succeeds, the workflow stops. If it fails, the agent automatically recovers the check using Stedi's best practices, such as trying permutations of the patient's demographic data. If recovery still fails, the agent runs an [insurance discovery check](/healthcare/insurance-discovery) to find coverage using the patient's demographic information. Insurance discovery checks can find coverage even if the original eligibility check had missing or incorrect information. For example, if the eligibility check used the wrong payer. You can start an Agentic Discovery check from the portal in two ways: - **Eligibility check form:** Click **+** next to **All checks** in the side navigation, or click **+ New eligibility check** in the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). Complete the form, then click **Agentic Discovery** under **Run as**. - **Stedi Agent:** Select **Agentic Discovery** on the Stedi Agent's [Chats page](https://portal.stedi.com/app/healthcare/chats). Complete the form, then click **Submit**. You can also start an Agentic Discovery run from a check that already failed. Visit [Retry with Agentic Discovery](#retry-with-agentic-discovery) for instructions. Both forms collect patient, provider, and payer details. Visit [Required information](#required-information) for details about what to include. Some fields have fallback behavior when you leave them blank: - **Date of service:** The check uses today's date. - **Service type code:** The check uses `30` (Health Benefit Plan Coverage). - **Payer:** The agent runs an insurance discovery check using the patient's demographic information. The payer is optional for Agentic Discovery, even though standard eligibility checks require it. The agent displays real-time updates as it works through the workflow, showing each step and its results. ### Required information [#required-information] You only need to provide: - The patient's first name - The patient's last name - At least one of: the patient's date of birth, member ID, or Social Security Number (SSN) - The provider's NPI However, we recommend including as much patient information as you have, such as the state in the patient's address. Additional information increases the likelihood of finding active coverage. When your account has Agentic Discovery, the eligibility check form includes **SSN** and **State** fields for the subscriber. These fields are recommended for Agentic Discovery, but are optional for a standard eligibility check. ### Pricing [#pricing] Stedi prices Agentic Discovery checks per agent run. Stedi doesn't bill you separately for the underlying eligibility or insurance discovery checks the agent performs. When you run the eligibility check form as **Agentic Discovery**, Stedi charges Agentic Discovery rates rather than standard eligibility check rates. For pricing details, visit the [Stedi pricing page](https://www.stedi.com/pricing). ## Standard eligibility checks [#standard-eligibility-checks] Use standard eligibility checks when you're sure the patient's demographics are complete and correct or need to run mock checks in test mode. With standard checks, you manually specify all patient, provider, and payer information, and you're responsible for troubleshooting any errors that occur. ### Testing [#testing] The best way to test real-time eligibility checks is through mock requests. When you submit specific mock requests in test mode, Stedi returns mock benefits data from the specified payer. To submit mock requests through the Stedi portal: 1. Toggle **Test mode** to **ON** in the side navigation. 2. Go to the [eligibility check form](https://portal.stedi.com/app/healthcare/checks/create). 3. Choose from predefined mock requests for well-known payers, including Aetna, Cigna, UnitedHealthcare, and the Centers for Medicare & Medicaid Services (CMS). For each mock request, Stedi returns a realistic mock benefits response for that payer so you can get a sense for the kinds of data you'll receive in production. The benefits responses include examples of copays, deductibles, and other patient payment responsibilities, as well as active coverage. Visit [Test mode](/healthcare/test-mode) to learn more about testing in the Stedi portal. Mock transactions you send in test mode are free for testing purposes and won't incur any charges from Stedi. #### Don't send fake data [#dont-send-fake-data] Some payers, particularly CMS (HETS), prohibit sending test eligibility checks for fake patients or providers to their production systems. Payers may block your access if you send these types of test transactions. You can send as many [mock requests](/healthcare/api-reference/mock-requests-eligibility-checks) to Stedi as you need, but if you need to send test data to payers in production, you must contact [Stedi support](https://www.stedi.com/contact) to coordinate with the payer and obtain approval. For example, some payers require that you use specific test credentials. ### Run eligibility checks [#run-eligibility-checks] Real-time eligibility checks provide a response in seconds. They're ideal for in-person patient visits, telehealth appointments, and other scenarios where you need immediate information about a patient's coverage. To run a standard eligibility check: 1. Click **+** next to **All checks** in the side navigation, or click **+ New eligibility check** in the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). Stedi opens the eligibility check form. 2. Complete the form. Click **Swap to advanced form** in the top right when you need to: - Add additional provider identifiers (such as a Social Security Number). - Specify that the subscriber is an organization or add extra subscriber fields. - Use procedure codes, such as CDT or CPT, instead of service type codes. - Submit a date range instead of a single date of service. Review [eligibility request fields](#eligibility-request-fields) for detailed instructions and tips for required fields, including how to add fields in the advanced form. We especially recommend reviewing how to choose the right service type code (STC) or procedure code and [which provider name to use](#provider-name). Both are **very** important for getting the best results from the payer. 3. Submit the check: - On the simplified form, click **Single eligibility check** under **Run as**. Accounts without Agentic Discovery have a single **Submit** button instead. - On the advanced form, click **Submit**. The advanced form always runs a standard eligibility check. Stedi opens the **Overview** page for the eligibility check. If the check was successful, you can switch to **Benefits** in the menu to review the patient's benefits information. #### Eligibility request fields [#eligibility-request-fields] For the best chance of success, start by sending the smallest possible set of fields in your eligibility checks. Adding extra data can lead to unnecessary rejections. We recommend starting with the following information. Only include more if the payer requires it. {/* prettier-ignore-start */} | Form section | Instructions | | --- | --- | | **Payer** | Select the payer where you want to send the eligibility check.
  • For real-time eligibility checks, select the payer from the list.
  • For MBI lookups, select **CMS MBI Lookup** from the list.
| | **Provider - Name** | Most eligibility requests require the provider's name and their National Provider Identifier (NPI).
  • **Provider NPI**: Enter the provider's National Provider Identifier. If the provider doesn't have an NPI, click **Swap to advanced form**, then click **Select fields**, search for another identifier like **SSN** under the **Provider** section, check the box to select it, and click **Save selection** to add it to the form.
  • **Type**: Choose whether the provider is an **Organization** or **Individual**.
    • If **Organization**: Enter the **Organization name** (business name).
    • If **Individual**: Enter the provider's **First name** and **Last name**.
  • When you enter the NPI, the form fills in the provider's name from their National Plan and Provider Enumeration System (NPPES) record. We recommend keeping that name. Only change it if you believe that the provider name on file with the payer differs from the provider name in NPPES. Don't use a placeholder name. Visit [Provider name](#provider-name) for details.
| | **Subscriber** | You must include enough information for the payer to identify the patient.
  • At a minimum, you must supply at least the subscriber's **Member ID**, **Date of birth**, or **Last name**. However, each payer has different requirements, so you should supply the fields necessary for each payer to identify the subscriber in their system.
  • When you supply the subscriber's member ID, first name, last name, and date of birth, payers are required to return a response if the member is in their database. That's why these are the default form fields.
  • If you need to specify that the subscriber is an organization or add extra subscriber fields, click **Swap to advanced form**. On the advanced form, choose whether they are an organization or an individual under **Name**.
  • If you need to run an MBI lookup with the subscriber's Social Security Number (SSN), click **Swap to advanced form**, then click **Select fields**, search for **SSN** under the **Subscriber** section, check the box to select it, and click **Save selection** to add the SSN field to the form.
| | **Dependent** (optional) | A patient qualifies as a dependent for eligibility checks when they are listed as a dependent on the subscriber's insurance plan and the payer cannot uniquely identify the patient through information outside the subscriber's policy. If the patient has their own member ID (even if it only differs by a suffix like `0`), you must identify them in the **Subscriber** section instead.
  • To add a dependent to the eligibility check form, click **+ Add dependent**.
  • You can only submit one dependent per eligibility check.
  • Most Medicaid plans don't support dependents - you'll almost always need to submit the child as a subscriber in the **Subscriber** section. Sending dependent information for payers that don't support dependents will either cause an error, or the payer may return results for the subscriber instead.
  • We strongly recommend including the dependent's date of birth in the request when available because many payers return errors without it.
  • Enter the dependent's name exactly as written on their insurance card, if available, including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces.
| | **Encounter - Service type codes** | Select a service type code from the list. This tells the payer what kinds of benefits information you're requesting.
  • We recommend STC `30` (Health Benefit Plan Coverage) to retrieve a patient's general medical benefits and `35` to retrieve a patient's general dental benefits.
  • We recommend submitting one code per request, unless you've tested and are certain that the payer supports multiple.
  • When requesting benefits for specific services, test the codes that seem most appropriate to determine which ones yield the most benefits information. Visit [STCs and procedure codes](/healthcare/eligibility-stc-procedure-codes) for details.
  • If you need to submit a procedure code, such as CDT or CPT, instead of a service type code, click **Swap to advanced form**.
| | **Encounter - Date of service** | Select a single service date for the request.
  • Leave the field blank to use today's date (the payer defaults to using the current date in their timezone). This ensures consistent behavior across payers.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers such as the Centers for Medicare and Medicaid Services (CMS) do support requests for dates further in the future - especially the next calendar month. Check the payer's documentation to determine their specific behavior.
  • If you need to submit a date range, click **Swap to advanced form**.
| {/* prettier-ignore-end */} ## Retry failed eligibility checks [#retry-failed-eligibility-checks] When an eligibility check fails, you can edit the request details in the portal and resubmit it until you get a successful response. There are three ways to retry a failed eligibility check: using [Agentic Discovery](#retry-with-agentic-discovery), [manually resubmitting](#manually-edit-and-retry) the request, or using [Debug view](#iterate-in-debug-view). For information about common eligibility check errors and recommended resolutions, visit the [troubleshooting guide](/healthcare/eligibility-troubleshooting). ### Retry with Agentic Discovery [#retry-with-agentic-discovery] You can use Agentic Discovery to automatically find a patient's coverage when an eligibility check fails. Agentic Discovery runs an automated workflow that attempts to recover the failed check using best practices. If recovery fails, it runs an insurance discovery check to find coverage using the patient's demographic information. Insurance discovery checks can find coverage even if the original eligibility check had missing or incorrect information. For example, if the eligibility check used the wrong payer. To use Agentic Discovery, you must be at least an [Operator](/healthcare/account-settings#members) role within your Stedi account. To retry a failed eligibility check with Agentic Discovery: 1. Go to the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). 2. Hold the pointer over a failed check to reveal the **Launch Agentic Discovery** button. 3. Click **Launch Agentic Discovery**. This automatically starts the Agentic Discovery workflow using the details from the failed check. The agent displays real-time updates as it works through the workflow, showing each step and its results. Stedi stores each retry in the same eligibility search record. You can review past Agentic Discovery sessions from the [Chats page](https://portal.stedi.com/app/healthcare/chats). ### Manually edit and retry [#manually-edit-and-retry] To manually resubmit an eligibility check: 1. From the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks), click the eligibility check you want to troubleshoot to view its details. 2. Click **Actions > Edit and retry**. 3. Update the request details as needed, and click **Submit**. You'll know the retry was successful when the status is either `Active` or `Inactive`. If the status is still `Failed`, you may want to try resolving in [Debug view](#iterate-in-debug-view) or using the [Stedi Agent](#retry-with-agentic-discovery), if available. ### Iterate in Debug view [#iterate-in-debug-view] Debug view is a workspace where you can systematically troubleshoot failed eligibility checks until you receive a successful response from the payer. For example, first you can try swapping the patient's nickname (Dave) for their full name (David) to see if that returns benefits information. In the next iteration, you can try submitting the request with a different service type code or dropping the date of birth. Debug view shows all past iterations of the eligibility check and highlights the differences between each new version of the request. You can also draft and submit new requests directly from this page. This format helps you understand what you've already tried and quickly iterate on failed requests. ![debug view](/images/providers/debug-view.png) To troubleshoot eligibility checks in Debug view: 1. From the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks), click the eligibility check you want to troubleshoot to view its details. 2. Click **Actions > Debug** to enter Debug view. 3. Click **+ Add draft** to create a new draft request. Stedi pre-populates the draft with the details from the most recent eligibility check. 4. Update the draft request as needed. Use the **Edit columns** list to show or hide specific fields in the request. 5. Click the green arrow when you're ready to submit the updated eligibility check draft. Stedi runs the check and moves it to the list of **Past checks**. Stedi highlights the differences between it and other past checks so you can see a clear record of your troubleshooting efforts. You can repeat this process as many times as needed to get a successful response. ## Provider name [#provider-name] Some payers return different benefits information depending on the provider name in the eligibility check, even when the National Provider Identifier (NPI) is the same. For example, when a check uses a placeholder name instead of the provider's name, a payer can return a limited set of benefits, or return out-of-network benefits instead of in-network benefits. We recommend using the name on the provider's National Plan and Provider Enumeration System (NPPES) record. Only use a different name if you believe that the provider name on file with the payer differs from the provider name in NPPES. If the name in the check doesn't match the payer's records, the payer can return different or incomplete benefits information. For API requests, we recommend omitting the provider name in your request - Stedi uses the name on the provider's NPPES record when it sends the check. In the Stedi portal, the eligibility form fills in the NPPES name when you enter the NPI, so we recommend keeping that name. ## Patient information [#patient-information] Follow this guidance to help payers find the patient in their system. ### Payer search requirements [#payer-search-requirements] All payers are required to be able to search for patients using the following "bare minimum" subsets of information. They will return benefits information as long as they can find a unique match for the patient within their system. For a subscriber: - Member ID, first name, last name, date of birth - Member ID, last name, date of birth - Member ID, first name, last name For a dependent: - Subscriber member ID, first name, last name, date of birth - Subscriber member ID, last name, date of birth - Subscriber member ID, first name, last name Of course, not all of this patient information is always available. For example, a patient may forget their ID card. In these instances, some payers may still be able to search with even less information, such as the patient's first name, last name, and date of birth. Contact us if you have questions about alternative search options for a particular payer. ### Dependents [#dependents] The patient qualifies as a dependent for eligibility checks when: 1. The patient is listed as a dependent on the subscriber's insurance plan. 2. The payer cannot uniquely identify the patient through information outside the subscriber's policy. When the patient meets these criteria, you should submit their information in the **Dependent** section of the form. Otherwise, you must submit their information in the **Subscriber** section instead. For example, if the dependent has their own member ID number in the payer's database, you must identify them as a subscriber. This includes member IDs that differ only by a suffix, such as `01`, because the patient can still be uniquely identified. #### Medicaid dependents [#medicaid-dependents] Most Medicaid plans don't support dependents. However, some state Medicaid plans support eligibility inquiries for newborn children under 12 months old. Children typically must be enrolled in Medicaid as a separate subscriber with their own unique member ID, even if they are legally the dependent of a parent who is a Medicaid plan member. Therefore, you'll almost always need to submit the child as a subscriber in the **Subscriber** section. Sending dependent information to payers that don't support dependents will either cause an error, or the payer may ignore the information and return results for the subscriber instead. ### Patient names [#patient-names] Note the following information and best practices when entering patient names: - Enter the name exactly as written on the patient's insurance ID card (if available), including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. If the patient's insurance ID card isn't available, enter the name exactly as written on a government-issued ID card. If a government ID card isn't available, enter the name exactly as given by the patient. - Don't include a name prefix, title, rank, honorific, or academic degree in any field. These include Mrs., Dr., Hon., and PhD. - Don't include a suffix or generation such as Jr. or III in the **First name** or **Last name** field. Put it in the separate **Suffix** field instead. Payers are supposed to automatically parse suffixes out of the last name, but Stedi can't guarantee that all payers will do this correctly. - You can populate a middle name (or names) or initial in the **Middle name** field, but most payers ignore it when searching for the patient. - Case doesn't matter. For example, JANE is equivalent to Jane. The following are supported for patient names: - Compound last and first names separated by spaces or hyphens such as Jean‐Claude or Smith Jones - Apostrophized or elided names such as O'Connor or D'Amore - Numbers like 3, however this typically indicates a data entry error Some payers may have more specific requirements or restrictions that we don't cover in our docs. If you're receiving errors for a specific payer, we recommend consulting that payer's documentation for eligibility checks for additional guidance. ## CMS HETS Rules of Behavior [#cms-hets-rules-of-behavior] All parties involved in eligibility transactions sent to the Centers for Medicare & Medicaid Services (CMS) eligibility system, called HETS, must comply with the [HETS Rules of Behavior](https://www.cms.gov/research-statistics-data-and-systems/cms-information-technology/hetshelp/downloads/eligibilitytransactionsysteminquiriesrulesofbehavior.pdf). Compliance is also required under our terms. Review the Rules of Behavior before sending eligibility checks to CMS. # Submit eligibility checks - API Source: https://www.stedi.com/docs/healthcare/send-eligibility-checks You can send real-time eligibility checks programmatically through the API. API submission is ideal for integrating eligibility checks into your application workflows and automating patient coverage verification. The synchronous response includes the patient's complete benefits information, such as coverage status, co-pays, and deductibles. Eligibility checks verify coverage with a specific payer. If you don't know the payer, you can perform an [insurance discovery check](/healthcare/insurance-discovery) instead to find a patient's coverage using their demographic data. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Most payers don't require transaction enrollment for eligibility checks. Those that do, such as the Centers for Medicare & Medicaid Services (CMS), typically allow multiple enrollments with different clearinghouses. That means enrolling through Stedi shouldn't cancel or interfere with any existing enrollments you have through other clearinghouses. Enrolling through Stedi for real-time eligibility checks also doesn't affect your existing enrollments for other transaction types. For example, enrolling with Stedi won't unenroll the provider from receiving transactions like Electronic Remittance Advices (ERAs) through other clearinghouses. You can check whether a specific payer requires enrollment for eligibility checks in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for real-time eligibility checks. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) ## Testing [#testing] The best way to test real-time eligibility checks is through mock requests. When you submit specific mock requests, Stedi returns mock benefits data from the specified payer. You can submit mock requests through the: - **API endpoints:** Visit [Eligibility mock requests](/healthcare/api-reference/mock-requests-eligibility-checks) for a complete list. All mock requests work with Stedi's JSON, Raw X12, and SOAP endpoints. - **Stedi portal:** Visit [Test mode](/healthcare/test-mode) to learn how to enable **Test mode** in your account and manually submit mock requests. ### Don't send fake data [#dont-send-fake-data] Some payers, particularly CMS (HETS), prohibit sending test eligibility checks for fake patients or providers to their production systems. Payers may block your access if you send these types of test transactions. You can send as many [mock requests](/healthcare/api-reference/mock-requests-eligibility-checks) to Stedi as you need, but if you need to send test data to payers in production, you must contact [Stedi support](https://www.stedi.com/contact) to coordinate with the payer and obtain approval. For example, some payers require that you use specific test credentials. ## Submit eligibility checks [#submit-eligibility-checks] Call one of the following endpoints to send real-time 270/271 eligibility checks to payers: - [Real-Time Eligibility Check JSON](/healthcare/api-reference/post-eligibility-check) to send requests in JSON - [Eligibility Check Raw X12](/healthcare/api-reference/post-healthcare-eligibility-raw-x12) to send requests in X12 EDI - [Eligibility Check SOAP](/healthcare/api-reference/post-healthcare-eligibility-soap) to send SOAP requests using the CAQH CORE vC2.2.0 XML Schema. The XML document contains an eligibility check in X12 EDI format. If you're currently using the legacy JSON endpoint, visit the [Real-Time Eligibility Check JSON (Legacy)](/healthcare/api-reference/post-healthcare-eligibility-legacy) API reference. Stedi automatically applies various repairs to help your requests meet X12 HIPAA specifications, resulting in fewer payer rejections. ### Headers - required [#headers---required] JSON and Raw X12 endpoints: - **`Authorization`:** [Generate an API key](/healthcare/api-reference#authentication) to use for authentication. Use a test API key when submitting mock requests. - **`Content-Type`:** Set to `application/json`. SOAP endpoint: - **`Content-Type`:** Set to `application/soap+xml`. You'll include authentication details in the XML document, so you don't need to set the `Authorization` header. ### Headers - situational [#headers---situational] JSON, Raw X12, and SOAP endpoints: - When sending eligibility checks to the Centers for Medicare & Medicaid Services (CMS), you may need to include the `X-Forwarded-For` header set to a comma-separated list of any upstream IP addresses. Visit [CMS traceability requirements](#cms-traceability-requirements) for details and examples. ### Body - JSON [#body---json] The information you provide to the payer in an eligibility check can vary, depending on the circumstances. We recommend starting with a basic eligibility request. #### Basic eligibility request [#basic-eligibility-request] Each eligibility check must include at least the following information in the request body: | Information | Description | | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `payerId` |
  • This is the payer ID. You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. If you don't already have payer IDs you use today, we recommend using the primary Payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list.
  • You must include leading `0` characters in payer IDs. For example, use `00540` for `SISCO`, not `540`.
  • If you don't know the payer, try submitting an [insurance discovery check](/healthcare/insurance-discovery) instead.
| | `provider` object, name and identifier |
  • You must include an identifier - this is typically the provider's [National Provider Identifier](https://www.stedi.com/docs/healthcare/national-provider-identifier) (`npi`). If the provider doesn't have an NPI, you can supply an alternative, such as their `tin` or `ssn`.
  • We recommend omitting the provider's name - Stedi uses the name on the provider's National Plan and Provider Enumeration System (NPPES) record. Only include it in `provider.name` - either `name.person.firstName` and `name.person.lastName` for a specific provider within a practice, or `name.organization` for the organization name - if you believe that the provider name on file with the payer differs from the provider name in NPPES. Don't use a placeholder name. Visit [Provider name](#provider-name) for details.
| | `subscriber` and `dependent` objects | You must include enough information for the payer to identify the patient.
  • The `dependent` object is optional - refer to the scenarios when the [patient qualifies as a dependent](/healthcare/send-eligibility-checks#dependents).
  • At a minimum, our API requires that you supply at least one of these fields in the request: `memberId`, `dateOfBirth`, or the patient's last name in `name.person.lastName`. However, each payer has different requirements, so you should supply the fields necessary for each payer to identify the patient in their system.
  • When you supply all four of `memberId`, `dateOfBirth`, `name.person.firstName`, and `name.person.lastName`, payers must return a response if the member is in their database. Some payers may be able to search with less information, but this varies by payer.
  • We recommend always including the subscriber's member ID when possible. Learn more about [patient information](/healthcare/send-eligibility-checks#patient-information).
| | `encounter` object, service dates |
  • You can specify either a single `dates.service` or a `dates.service.start` and `dates.service.end`. The payer defaults to using the current date in their timezone if you don't include one.
  • When checking eligibility for today, omit the date properties to ensure consistent behavior across payers.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers such as the Centers for Medicare and Medicaid Services (CMS) do support requests for dates further in the future - especially the next calendar month. Check the payer's documentation to determine their specific behavior.
  • Dates are in ISO 8601 format: `YYYY-MM-DD`.
| | `encounter` object, service codes |
  • Request specific types of benefits information in the `services` array. You can specify service type codes (STC) or procedure codes (such as CDT or CPT). For medical benefits, you'll almost always need an STC because most medical payers don't support procedure codes.
  • We recommend including no more than one service type code in each request.
  • If you don't include any service information, Stedi defaults to using service type code `30` (Plan coverage and general benefits).
  • Learn more about how to choose the right [STCs and procedure codes](/healthcare/eligibility-stc-procedure-codes) for eligibility checks.
| The following example shows the bare minimum request body for an eligibility check requesting benefits information for STC `47` (Hospital). Because the service date is not specified, the payer uses the current date in their timezone (default) to retrieve benefits information. {/* schema:CreateEligibilityCheckRequestContent */} ```json { "payerId": "87726", "encounter": { "services": [ { "value": "47", "system": "STC" } ] }, "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "subscriber": { "name": { "person": { "firstName": "John", "lastName": "Doe" } }, "memberId": "UHC202649" }, "dependent": { "name": { "person": { "firstName": "Jane", "lastName": "Doe" } }, "dateOfBirth": "1952-11-21" } } ``` #### Conditional requirements [#conditional-requirements] Note that objects marked as **required** are required for all requests, while others are conditionally required depending on the circumstances. When you include a conditionally required object, you must include all of its required properties. For example, you must always include the `provider` object in your request, but you only need to include the `dependent` object when you need to request benefits information for a dependent on the subscriber's insurance plan. ### Body - X12 EDI [#body---x12-edi] When sending real-time eligibility checks through the Raw X12 or SOAP endpoints, you must send the eligibility check [270 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-eligibility-benefit-inquiry-x279a1/01GRYB6GTDJ4MEP5Z16CGMQWT6?__hstc=181257784.360aac417a3f93a63ca63bf29197fe1f.1727971380232.1752174670420.1752250096430.449&__hssc=181257784.244.1752250096430&__hsfp=1923652471). The information you send can vary, depending on the circumstances. We recommend starting with a basic eligibility request. #### Basic eligibility request [#basic-eligibility-request-1] Each eligibility check must also include at least the following information: | Information | Description | | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `BHT03` (Submitter Transaction Identifier) |
  • This identifier must be 1-50 characters long and different from the value you choose for `ST02`.
  • We also strongly recommend using a unique value. [Learn more](/healthcare/send-eligibility-checks#submitter-transaction-identifier)
| | `Loop 2100A` (Information Source) |
  • This loop contains the payer's information. Notably, you must include the payer's name (`NM103`) and identifier (`NM109`).
  • The payer's identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). For example, you could use `60054`, `HPQRS`, `AETNA`, or any other listed payer ID alias for Aetna.
  • You must include leading `0` characters in payer IDs. For example, use `00540` for `SISCO`, not `540`.
| | `Loop 2000B` (Information Receiver) |
  • This loop contains information about the provider requesting the benefits information.
  • You must include an identifier (`NM109`). Most often this is the [National Provider Identifier (NPI)](/healthcare/national-provider-identifier).
  • We recommend leaving `Loop 2100B NM103` (Information Receiver Last or Organization Name) blank - Stedi uses the name on the provider's NPPES record. Only include the name if you believe that the provider name on file with the payer differs from the provider name in NPPES. Don't use a placeholder name. Visit [Provider name](#provider-name) for details.
| | `Loop 2000C` (Subscriber) and `Loop 2000D` (Dependent) |
  • `Loop 2000D` is optional - refer to the scenarios when the [patient qualifies as a dependent](/healthcare/send-eligibility-checks#dependents).
  • At a minimum, you must supply at least one of these fields in the appropriate loop to identify the patient: `NM109` (member ID), `DMG02` (birth date), or `NM103` (last name). However, each payer has different requirements, so you should supply the fields necessary for each payer to identify the patient in their system.
  • When all four of member ID, first name, last name, and date of birth are provided, payers are required to return a response if the member is in their database. Some payers may be able to search with less information, but this varies by payer.
  • We recommend always including the patient's member ID when possible. Learn more about [patient information](/healthcare/send-eligibility-checks#patient-information).
| | `Loop 2110C` or `Loop 2100D DTP` (Eligibility/Benefit Date) |
  • You can specify either a single date of service or a range of service dates. The payer defaults to using the current date in their timezone if you don't include one.
  • When checking eligibility for today, omit the service date from the request to ensure consistent behavior across payers.
  • We recommend submitting dates up to 12 months in the past or up to the end of the current month. Payers aren't required to support dates outside these ranges. However, some payers such as the Centers for Medicare and Medicaid Services (CMS) do support requests for dates further in the future - especially the next calendar month. Check the payer's documentation to determine their specific behavior.
| | `Loop 2110C` or `Loop 2100D EQ` (Eligibility or Benefit Inquiry) |
  • You must specify a service type code, or a procedure code and qualifier to request specific types of benefits information.
  • We recommend including no more than one service type code in each request. Learn more about [STCs and procedure codes](/healthcare/eligibility-stc-procedure-codes).
| #### Envelope and header [#envelope-and-header] Stedi generates its own `ISA` and `GS` headers and `IEA` and `GE` trailers before sending your eligibility check to the payer. You can submit your check to Stedi with any values in these segments, as long as they conform to the X12 EDI specification. However, you must set `ST03` (Implementation Convention Reference) to `005010X279A1`. #### Submitter transaction identifier [#submitter-transaction-identifier] The `BHT03` (Submitter Transaction Identifier) element is **required** when submitting real-time eligibility checks in X12 EDI. The identifier you choose must be: - An alphanumeric string from 1-50 characters long. - Different from the value you choose for `ST02` (Transaction Set Control Number). We also **strongly recommend** using a unique value. This approach makes it easier for Stedi to troubleshoot eligibility checks in your account. The payer returns the identifier in the `BHT03` element of the 271 eligibility response, and Stedi returns it in the `meta.traceId` JSON property. If you don't include `BHT03` in the request, Stedi returns a `200` with the `status` property set to `ERROR` and the `implementationTransactionSetSyntaxError` property set to `5`. The response also includes a negative [999 Implementation Acknowledgment](https://www.stedi.com/edi/x12/transaction-set/999) in the `x12` property. {/* schema:EligibilityCheckResponseContent */} ```json { "controlNumber": "138549672", "tradingPartnerServiceId": "STEDI", "errors": [ { "description": "The payer or clearinghouse rejected the request with validation errors. The original edi response is returned in the x12 field, please contact Stedi Support if you need further help." } ], "status": "ERROR", "transactionSetAcknowledgement": "R", "implementationTransactionSetSyntaxError": "5", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *250523*1304*^*00501*000000000*0*P*:~GS*FA*STEDI*117151744*20250523*1304*000000000*X*005010X231A1~ST*999*0001*005010X231A1~AK1*HS*9872*005010X279A1~AK2*270*0001*005010X279A1~IK3*BHT*2**8~IK4*3*127*2~CTX*SITUATIONAL TRIGGER*BHT*2**3~IK5*R*5~AK9*R*1*1*0~SE*9*0001~GE*1*000000000~IEA*1*000000000~" } ``` #### Trace number [#trace-number] You may want to include a trace number in your request to help you track eligibility checks. Stedi always generates a trace number for internal tracking, and you can optionally supply your own trace number of up to 50 characters in a `TRN` segment. You can send the trace number in **one** of the following locations (not both): - If the subscriber is the patient, send it in `Loop 2000C TRN02` (Trace Number). - If the dependent is the patient, send it in `Loop 2000D TRN02` (Dependent Trace Number). Stedi returns both its internal trace number and your trace number (if provided) in the [`subscriberTraceNumbers` array](/healthcare/api-reference/post-healthcare-eligibility-raw-x12#response.subscriberTraceNumbers). ### Character restrictions [#character-restrictions] Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause errors. The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included. The following special characters are included: ![Basic special characters](/images/basic-special-characters.png) The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`. The following additional special characters are included: ![Extended special characters](/images/extended-special-characters-healthcare.png) In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, `^`, and `>`. X12 doesn't support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly. - **JSON endpoint:** Don't include delimiter characters anywhere in your request data. - **Raw X12 endpoint:** You can use these characters as delimiters, but not in the body of the request data. #### Autocorrection for backticks [#autocorrection-for-backticks] Stedi automatically replaces backticks (`` ` ``), also known as backquotes or grave accents, with an apostrophe (`'`) in `subscriber` and `dependent` first and last names. These corrections prevent errors when submitting your request. Stedi returns a message in the response's `warnings` array when it makes this replacement. ### Sample request and response [#sample-request-and-response] The following request and response examples show a basic eligibility check for a subscriber named Jane Doe. The request uses the `30` service type code to check for health benefit plan coverage. The response contains the patient's benefits information. Visit [Active coverage and benefits](/healthcare/eligibility-active-coverage-benefits) for detailed explanations of how to determine the patient's active coverage, financial responsibility, whether referrals and authorizations are required, and more. #### JSON endpoint [#json-endpoint] The JSON API response format is different from the X12 JSON response format for the Raw X12 endpoint. The X12 endpoint returns JSON that closely mirrors the X12 EDI structure. {/* schema:CreateEligibilityCheckRequestContent */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2026-06-01/eligibility-check \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "payerId": "61101", "subscriber": { "dateOfBirth": "1975-05-05", "memberId": "HUMANA123", "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "provider": { "name": { "organization": "Provider Name" }, "npi": "1999999984" }, "encounter": { "services": [ { "value": "30", "system": "STC" } ] } }' ``` {/* schema:CreateEligibilityCheckResponseContent */} ```json { "id": "ec_01a06d4a-a0fa-77d2-8b49-ca9a74c9888a", "eligibilitySearchId": "01a06d4a-a0fa-77d2-8b49-caa0546ed292", "payerId": "61101", "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *260904*1640*^*00501*263887373*0*T*`~GS*HB*STEDI*117151744*20260904*164002*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01M1PMN87VXMME0ZV6SHJP3B9V*20260325*0901~HL*1**20*1~NM1*PR*2*HUMANA*****PI*61101~HL*2*1*21*1~NM1*1P*2*MEDICAL PROVIDER*****XX*1999999984~HL*3*2*22*0~TRN*1*000011112222333*0101010101~NM1*IL*1*DOE*JANE*L***MI*HUMANA123~REF*6P*11223344~REF*6P*11223344*HUMANA INSURANCE COMPANY~REF*F6*1A22BB3CC44~N3*101 MAIN ST~N4*ATLANTA*GA*303010001~DMG*D8*19750505*F~DTP*346*D8*20240101~DTP*472*D8*20240917~EB*1*EMP*30*PR*Humana Gold Plan*******W~MSG*000 111~MSG*Medicare PPO~MSG*Member cannot be balanced billed for medical copayments, coinsurance or deductibles on this Plan. Member is cost-share protected by the state Medicaid. In WA if Medicaid is not cost-share protecting members, Humana will process the claim paying member cost share.~MSG*THIS MEMBER MAY BE ELIGIBLE FOR A FREE FITNESS MEMBERSHIP.~EB*L***********W~LS*2120~NM1*P3*1*John*Dough~N3*202 Main St~N4*Tulsa*OK*74008~PER*IC**TE*9999999999~LE*2120~EB*F**30******YY*26**W~MSG*MAX DEPENDENT AGE~EB*F**30******YY*31**W~MSG*MAX STUDENT AGE~EB*L****AFFILIATION/CENTER*******W~LS*2120~NM1*GW*2*OK EMP PPO*****PI*34343434~LE*2120~EB*W***********W~MSG*NO DESCRIPTION PROVIDED~EB*1**1^54^33^98^88^UC^47^50^AL^MH^35^86^48*********W~EB*1*IND*1*PR***0*****Y~EB*A*IND*49*PR**36**0****Y~MSG*INPATIENT HOSPITAL ROOM AND BOARD~EB*B*IND*49*PR**36*2000*****Y~MSG*INPATIENT HOSPITAL ROOM AND BOARD~EB*C*IND*49*PR***0*****Y~MSG*INPATIENT HOSPITAL ROOM AND BOARD~EB*A*IND*48*PR**23**0****Y~MSG*INPATIENT HOSPITAL~EB*C*IND*48*PR***0*****Y~MSG*INPATIENT HOSPITAL~EB*A*IND*86*PR**23**0****Y~MSG*ER~EB*B*IND*86*PR**26*100*****Y~MSG*ER~EB*A*IND*86*PR**23**0****Y~MSG*ANESTHESIA~EB*B*IND*86*PR**26*100*****Y~MSG*ANESTHESIA~EB*C*IND*86*PR***0*****Y~MSG*ER~EB*C*IND*86*PR***0*****Y~MSG*ANESTHESIA~EB*I*IND*35*PR***0*****Y~MSG*VIEW CONTRACT FOR COVERAGE DETAILS~EB*A*IND*MH^98*PR**23**0****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*A*IND*MH*PR**23**0****Y~MSG*TELEHEALTH VISIT SPECIALIST~III*ZZ*10~EB*C*IND*MH^98*PR***0*****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*C*IND*MH^98*PR***0*****Y~MSG*TELEHEALTH VISIT SPECIALIST~III*ZZ*10~EB*1*IND*MH*PR***0*****Y~MSG*PHYSICIAN OFFICE VISIT SPECIALIST~EB*A*IND*AL*PR**23**0****Y~MSG*ROUTINE VISION EXAM~EB*F*IND*AL*PR**23*40*****Y~MSG*ROUTINE VISION EXAM~EB*C*IND*AL*PR***0*****Y~MSG*ROUTINE VISION EXAM~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL SURGERY~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL ANESTHESIA~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL MRI SCAN~EB*A*IND*50*PR****.2****Y~MSG*OUTPATIENT HOSPITAL CAT SCAN~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL SURGERY~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL ANESTHESIA~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL MRI SCAN~EB*C*IND*50*PR***250*****Y~MSG*OUTPATIENT HOSPITAL CAT SCAN~EB*1*IND*47*PR***0*****Y~MSG*INPATIENT HOSPITAL~EB*A*IND*UC*PR****.2****Y~MSG*PHYSICIAN OFFICE URGENT CARE~EB*A*IND*UC*PR****.2****Y~MSG*PHYSICIAN OFFICE PREFERRED URGENT CARE~EB*A*IND*UC*PR****.2****Y~MSG*TELEHEALTH URGENT CARE~EB*C*IND*UC*PR***0*****Y~MSG*PHYSICIAN OFFICE URGENT CARE~EB*C*IND*UC*PR***0*****Y~MSG*PHYSICIAN OFFICE PREFERRED URGENT CARE~EB*C*IND*UC*PR***0*****Y~MSG*TELEHEALTH URGENT CARE~EB*C**88****550*****Y~EB*C**88****0*****Y~EB*B**88****35*****Y~MSG*LEVEL 3~EB*B**88****35*****Y~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT PCP~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT SPECIALIST~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT FREESTANDING RAD CTR~EB*A*IND*98*PR****.2****Y~MSG*PHYSICIAN OFFICE VISIT COMP OUTPT REHAB FACILITY~EB*B*IND*98*PR**23*0*****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*F*IND*98*PR**23**1****Y~MSG*TELEHEALTH VISIT PCP~III*ZZ*10~EB*A*IND*98*PR****.2****Y~MSG*TELEHEALTH VISIT SPECIALIST~III*ZZ*10~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT PCP~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT SPECIALIST~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT FREESTANDING RAD CTR~EB*C*IND*98*PR***250*****Y~MSG*PHYSICIAN OFFICE VISIT COMP OUTPT REHAB FACILITY~EB*I*IND*98*PR***0*****Y~MSG*PHYSICIAN OFFICE DOCTOR ON DEMAND NOT COVERED~EB*A*IND*33*PR****.2****Y~MSG*MEDICARE COVERED MANIPULATIONS~EB*I*IND*33*PR***0*****Y~MSG*MANIPULATIONS~EB*I*IND*33*PR***0*****Y~MSG*RADIOLOGY~EB*C*IND*33*PR***250*****Y~MSG*MEDICARE COVERED MANIPULATIONS~EB*C*IND*30*PR**23*250*****Y~MSG*SEE EXACT BENEFIT TO VERIFY IF DEDUCTIBLE APPLIES~EB*G*IND*30*PR**23*8000*****Y~EB*G*IND*30***24*200*****W~EB*G*IND*30***29*8500*****W~EB*G*IND*30***24*200*****Y~EB*G*IND*30***29*4000*****Y~EB*F*IND*30***24*30000*****W~EB*F*IND*30***29*9000000*****W~EB*C*IND*30***24*250*****W~EB*C*IND*30***29*0*****W~EB*F*IND*30***24*10000*****W~EB*F*IND*30***29*9000000*****W~EB*G*IND*30***24*400*****W~EB*G*IND*30***29*12000*****W~EB*G*IND*30***24*400*****Y~EB*G*IND*30***29*7500*****Y~EB*P***********W~MSG*THIS IS ONLY AN ESTIMATION OF BENEFITS, AND ALL PAYMENTS ARE SUBJECT TO POLICY GUIDELINES, MEDICAL NECESSITY, AND MEMBER ELIGIBILITY AT THE TIME SERVICES ARE PERFORMED.~SE*175*0001~GE*1*1~IEA*1*263887373~", "provider": { "type": "PROVIDER", "name": { "organization": "MEDICAL PROVIDER" }, "npi": "1999999984" }, "payer": { "type": "PAYER", "name": { "organization": "HUMANA" }, "identification": "61101" }, "meta": { "traceId": "01M1PMN87VXMME0ZV6SHJP3B9V", "outboundTraceId": "01M1PMN87VXMME0ZV6SHJP3B9V", "subscriberTraceNumbers": [ { "type": "CURRENT_TRANSACTION", "referenceIdentification": "000011112222333", "originatingCompanyIdentifier": "0101010101" } ] }, "subscriber": { "memberId": "HUMANA123", "dateOfBirth": "1975-05-05", "gender": "FEMALE", "name": { "person": { "firstName": "JANE", "lastName": "DOE", "middleName": "L" } }, "address": { "addressLine1": "101 MAIN ST", "city": "ATLANTA", "state": "GA", "postalCode": "303010001" }, "dates": { "plan": { "start": "2024-01-01" }, "service": { "start": "2024-09-17" } }, "additionalInformation": { "mbi": "1A22BB3CC44", "group": { "number": "11223344", "name": "HUMANA INSURANCE COMPANY" } } }, "plans": [ { "benefits": { "statuses": [ { "status": "ACTIVE_COVERAGE", "coverageLevel": "EMPLOYEE_ONLY", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "planCoverageDescription": "Humana Gold Plan", "messages": [ "000 111", "Medicare PPO", "Member cannot be balanced billed for medical copayments, coinsurance or deductibles on this Plan. Member is cost-share protected by the state Medicaid. In WA if Medicaid is not cost-share protecting members, Humana will process the claim paying member cost share.", "THIS MEMBER MAY BE ELIGIBLE FOR A FREE FITNESS MEMBERSHIP." ] } ], "coPayment": [ { "coverageLevel": "INDIVIDUAL", "amount": "2000", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "49", "definition": "Hospital - Room and Board", "system": "STC" }, "timePeriod": "ADMISSION", "messages": [ "INPATIENT HOSPITAL ROOM AND BOARD" ] }, { "coverageLevel": "INDIVIDUAL", "amount": "100", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "86", "definition": "Emergency Services", "system": "STC" }, "timePeriod": "EPISODE", "messages": [ "ER" ] } ], "coInsurance": [ { "coverageLevel": "INDIVIDUAL", "percent": "0", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "49", "definition": "Hospital - Room and Board", "system": "STC" }, "timePeriod": "ADMISSION", "messages": [ "INPATIENT HOSPITAL ROOM AND BOARD" ] } ], "deductible": [ { "coverageLevel": "INDIVIDUAL", "amount": "0", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "49", "definition": "Hospital - Room and Board", "system": "STC" }, "messages": [ "INPATIENT HOSPITAL ROOM AND BOARD" ] } ], "outOfPocket": [ { "coverageLevel": "INDIVIDUAL", "amount": "8000", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "timePeriod": "CALENDAR_YEAR" } ], "limitations": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "service": { "value": "30", "definition": "Health Benefit Plan Coverage", "system": "STC" }, "quantity": { "value": "26", "qualifier": "YEARS" }, "messages": [ "MAX DEPENDENT AGE" ] } ], "nonCovered": [ { "coverageLevel": "INDIVIDUAL", "amount": "0", "insuranceType": "PREFERRED_PROVIDER_ORGANIZATION_PPO", "network": { "indicator": "IN_NETWORK" }, "service": { "value": "35", "definition": "Dental Care", "system": "STC" }, "messages": [ "VIEW CONTRACT FOR COVERAGE DETAILS" ] } ], "benefitDisclaimer": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "messages": [ "THIS IS ONLY AN ESTIMATION OF BENEFITS, AND ALL PAYMENTS ARE SUBJECT TO POLICY GUIDELINES, MEDICAL NECESSITY, AND MEMBER ELIGIBILITY AT THE TIME SERVICES ARE PERFORMED." ] } ], "otherSourceOfData": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "messages": [ "NO DESCRIPTION PROVIDED" ] } ], "primaryCareProvider": [ { "coverageLevel": "INDIVIDUAL", "network": { "indicator": "IN_AND_OUT_OF_NETWORK" }, "relatedEntities": [ { "type": "PRIMARY_CARE_PROVIDER", "name": { "person": { "firstName": "Dough", "lastName": "John" } }, "address": { "addressLine1": "202 Main St", "city": "Tulsa", "state": "OK", "postalCode": "74008" }, "contacts": [ { "phoneNumbers": [ "9999999999" ] } ] } ] } ] } } ] } ``` #### Raw X12 endpoint [#raw-x12-endpoint] ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3/raw-x12 \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --data '{ "x12": "ISA*00* *00* *ZZ*AV09311993 *01*030240928 *210101*1200*^*00501*000000001*0*P*>~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*UHC202649~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*19521121~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~" }' ``` {/* schema:EligibilityCheckResponseContent */} ```json { "meta": { "senderId": "STEDI", "submitterId": "117151744", "applicationMode": "test", "traceId": "01JDQV00485EPP4D6BD8GM1SWM", "outboundTraceId": "01KX42KZPCP7W5HHVSEY1Z8TEW" }, "controlNumber": "345459952", "reassociationKey": "345459952", "tradingPartnerServiceId": "87726", "provider": { "providerName": "Jerde - Sauer", "entityIdentifier": "Provider", "entityType": "Non-Person Entity", "npi": "1999999984" }, "subscriber": { "memberId": "UHC202649", "firstName": "John", "lastName": "Doe", "middleName": "A", "gender": "M", "entityIdentifier": "Insured or Subscriber", "entityType": "Person", "dateOfBirth": "19760214", "groupNumber": "186084", "planNumber": "UVdQAC5j6f", "address": { "address1": "123 Sunnyvale Lane", "city": "Fosterburgh", "state": "TX", "postalCode": "91016" } }, "dependents": [ { "firstName": "Jane", "lastName": "Doe", "middleName": "Alex", "gender": "F", "entityType": "Person", "dateOfBirth": "19521121", "planNumber": "UVdQAC5j6f", "relationToSubscriber": "Spouse", "relationToSubscriberCode": "01", "insuredIndicator": "N", "maintenanceTypeCode": "001", "maintenanceReasonCode": "25" } ], "payer": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "name": "UNITEDHEALTHCARE", "payorIdentification": "87726", "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] } }, "planInformation": { "planNumber": "UVdQAC5j6f", "groupNumber": "186084" }, "planDateInformation": { "plan": "20240101-20241231" }, "planStatus": [ { "statusCode": "1", "status": "Active Coverage", "planDetails": "CHOICE PLUS", "serviceTypeCodes": [ "30" ] }, { "statusCode": "1", "status": "Active Coverage", "serviceTypeCodes": [ "A6" ] }, { "statusCode": "1", "status": "Active Coverage", "serviceTypeCodes": [ "A6" ] }, { "statusCode": "1", "status": "Active Coverage", "serviceTypeCodes": [ "A6" ] }, { "statusCode": "1", "status": "Active Coverage", "serviceTypeCodes": [ "A6" ] } ], "benefitsInformation": [ { "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "planCoverage": "CHOICE PLUS", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsDateInformation": { "dateOfLastUpdate": "20240731" }, "benefitsRelatedEntity": { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "entityName": "UNITEDHEALTHCARE", "entityIdentification": "PI", "entityIdentificationValue": "87726", "address": { "address1": "P.O. BOX 30555", "city": "SALT LAKE CITY", "state": "UT", "postalCode": "841300555" }, "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] } }, "benefitsRelatedEntities": [ { "entityIdentifier": "Payer", "entityType": "Non-Person Entity", "entityName": "UNITEDHEALTHCARE", "entityIdentification": "PI", "entityIdentificationValue": "87726", "address": { "address1": "P.O. BOX 30555", "city": "SALT LAKE CITY", "state": "UT", "postalCode": "841300555" }, "contactInformation": { "contacts": [ { "communicationMode": "Uniform Resource Locator (URL)", "communicationNumber": "WWW.UHCPROVIDER.COM" } ] } } ], "additionalInformation": [ { "description": "PROVIDER IS OUT NETWORK FOR MEMBER" }, { "description": "FUNDING TYPE = SELF INSURED - LARGE GROUP" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "24", "timeQualifier": "Year to Date", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "24", "timeQualifier": "Year to Date", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" }, { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "24", "timeQualifier": "Year to Date", "benefitAmount": "3200", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "24", "timeQualifier": "Year to Date", "benefitAmount": "5555.16", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "15500", "inPlanNetworkIndicatorCode": "N", "inPlanNetworkIndicator": "No", "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "6850", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "3200", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "5000", "inPlanNetworkIndicatorCode": "N", "inPlanNetworkIndicator": "No", "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "1294.84", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "G", "name": "Out of Pocket (Stop Loss)", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "insuranceTypeCode": "C1", "insuranceType": "Commercial", "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "9944.84", "inPlanNetworkIndicatorCode": "N", "inPlanNetworkIndicator": "No", "additionalInformation": [ { "description": "OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "30" ], "serviceTypes": [ "Health Benefit Plan Coverage" ], "timeQualifierCode": "29", "timeQualifier": "Remaining", "benefitAmount": "1800", "inPlanNetworkIndicatorCode": "N", "inPlanNetworkIndicator": "No", "additionalInformation": [ { "description": "DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED" } ] }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ] }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ] }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ] }, { "code": "1", "name": "Active Coverage", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable" }, { "code": "A", "name": "Co-Insurance", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitPercent": "0.4", "inPlanNetworkIndicatorCode": "N", "inPlanNetworkIndicator": "No", "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "A", "name": "Co-Insurance", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitPercent": "0.2", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "A", "name": "Co-Insurance", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitPercent": "0.2", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "A", "name": "Co-Insurance", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitPercent": "0.2", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "A", "name": "Co-Insurance", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitPercent": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "B", "name": "Co-Payment", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ], "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "B", "name": "Co-Payment", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ], "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "B", "name": "Co-Payment", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "B", "name": "Co-Payment", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ], "eligibilityAdditionalInformation": { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" }, "eligibilityAdditionalInformationList": [ { "codeListQualifierCode": "ZZ", "codeListQualifier": "Mutually Defined", "industryCode": "11", "industry": "Office" } ] }, { "code": "C", "name": "Deductible", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" }, { "code": "C", "name": "Deductible", "coverageLevelCode": "FAM", "coverageLevel": "Family", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "23", "timeQualifier": "Calendar Year", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ] }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO PARTIALLY FUNDED" } ] }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "HIGHEST BENEFIT" } ] }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ABLETO FULLY FUNDED" } ] }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes" }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "ABLETO PARTIALLY FUNDED" } ] }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" } ] }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "HIGHEST BENEFIT" } ] }, { "code": "F", "name": "Limitations", "coverageLevelCode": "IND", "coverageLevel": "Individual", "serviceTypeCodes": [ "A6" ], "serviceTypes": [ "Psychotherapy" ], "timeQualifierCode": "27", "timeQualifier": "Visit", "benefitAmount": "0", "inPlanNetworkIndicatorCode": "Y", "inPlanNetworkIndicator": "Yes", "additionalInformation": [ { "description": "ADDITIONAL COVERED PER OCCURRENCE" }, { "description": "ABLETO FULLY FUNDED" } ] }, { "code": "X", "name": "Health Care Facility", "inPlanNetworkIndicatorCode": "W", "inPlanNetworkIndicator": "Not Applicable", "benefitsRelatedEntity": { "entityIdentifier": "Provider", "entityType": "Non-Person Entity", "entityName": "NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES", "entityIdentification": "XX", "entityIdentificationValue": "1235600834" }, "benefitsRelatedEntities": [ { "entityIdentifier": "Provider", "entityType": "Non-Person Entity", "entityName": "NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES", "entityIdentification": "XX", "entityIdentificationValue": "1235600834" } ] } ], "errors": [], "x12": "ISA*00* *00* *ZZ*STEDI *01*117151744 *260709*1835*^*00501*345459952*0*T*`~GS*HB*STEDI*117151744*20260709*183539*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*01JDQV00485EPP4D6BD8GM1SWM*20260325*0901~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~PER*IC**UR*WWW.UHCPROVIDER.COM~HL*2*1*21*1~NM1*1P*2*Jerde - Sauer*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John*A***MI*UHC202649~REF*6P*186084~REF*18*UVdQAC5j6f~N3*123 Sunnyvale Lane~N4*Fosterburgh*TX*91016~DMG*D8*19760214*M~DTP*291*RD8*20240101-20241231~HL*4*3*23*0~NM1*03*1*Doe*Jane*Alex~REF*18*UVdQAC5j6f~DMG*D8*19521121*F~INS*N*01*001*25~EB*1**30*C1*CHOICE PLUS*******W~DTP*636*D8*20240731~MSG*PROVIDER IS OUT NETWORK FOR MEMBER~MSG*FUNDING TYPE = SELF INSURED - LARGE GROUP~LS*2120~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~N3*P.O. BOX 30555~N4*SALT LAKE CITY*UT*841300555~PER*IC**UR*WWW.UHCPROVIDER.COM~LE*2120~EB*C*FAM*30***23*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***24*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*0*****Y~MSG*HIGHEST BENEFIT~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**24*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*0*****Y~MSG*HIGHEST BENEFIT~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***24*3200*****W~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**24*5555.16*****W~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*15500*****N~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**23*6850*****Y~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***23*3200*****Y~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*0*****Y~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***23*5000*****N~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*1294.84*****Y~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*G*FAM*30*C1**29*9944.84*****N~MSG*OOP MAXIMUM IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*C*FAM*30***29*1800*****N~MSG*DEDUCTIBLE IS MET WHEN FAMILY AMOUNT IS SATISFIED~EB*1**A6*********Y~MSG*HIGHEST BENEFIT~EB*1**A6*********Y~MSG*ABLETO FULLY FUNDED~EB*1**A6*********Y~MSG*ABLETO PARTIALLY FUNDED~EB*1**A6*********W~EB*A*IND*A6***27**.4****N~III*ZZ*11~EB*A*IND*A6***27**.2****Y~III*ZZ*11~EB*A*IND*A6***27**.2****Y~MSG*HIGHEST BENEFIT~III*ZZ*11~EB*A*IND*A6***27**.2****Y~MSG*ABLETO PARTIALLY FUNDED~III*ZZ*11~EB*A*IND*A6***27**0****Y~MSG*ABLETO FULLY FUNDED~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*HIGHEST BENEFIT~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*ABLETO PARTIALLY FUNDED~III*ZZ*11~EB*B*IND*A6***27*0*****W~III*ZZ*11~EB*B*IND*A6***27*0*****Y~MSG*ABLETO FULLY FUNDED~III*ZZ*11~EB*C**A6***27*0*****Y~EB*C*FAM*A6***23*0*****Y~MSG*ABLETO FULLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*ABLETO PARTIALLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*HIGHEST BENEFIT~EB*F*IND*A6***27*0*****Y~MSG*ABLETO FULLY FUNDED~EB*F*IND*A6***27*0*****Y~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*ABLETO PARTIALLY FUNDED~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*HIGHEST BENEFIT~EB*F*IND*A6***27*0*****Y~MSG*ADDITIONAL COVERED PER OCCURRENCE~MSG*ABLETO FULLY FUNDED~EB*X***********W~LS*2120~NM1*1P*2*NEW YORK MEDICAL BEHAVIORAL HEALTH SERVICES*****XX*1235600834~LE*2120~SE*125*0001~GE*1*1~IEA*1*345459952~", "eligibilitySearchId": "019f4829-fecb-7b60-86a9-6ca38f7d1db7", "id": "ec_019f4829-fecb-7b60-86a9-6c900ad94bfb" } ``` #### SOAP endpoint [#soap-endpoint] Note that the HTTP response must also include two additional headers: - `stedi-id`: The Stedi-assigned unique identifier for the eligibility check, formatted as `ec_`. For example: `id: ec_f81d4fae-7dec-11d0-a765-00a0c91e6b12`. - `stedi-eligibility-search-id`: A Stedi-assigned identifier that allows Stedi to group eligibility checks for the same patient into a unified record in the Stedi portal called an [eligibility search](/healthcare/eligibility-views#eligibility-search). For example: `stedi-eligibility-search-id: 01997873-bebb-7b33-81ef-f408866dfb2cb`. The response body is a SOAP message, and its structure is similar to the request. ```bash curl --request POST \ --url 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core' \ --header 'Content-Type: application/soap+xml' \ --data ' STEDI-ACCOUNT-ID STEDI-API-KEY X12_270_Request_005010X279A1 RealTime f81d4fae-7dec-11d0-a765-00a0c91e6b12 2007-08-30T10:20:34.000Z STEDI STEDI 2.2.0 ~GS*HS*1510848*030240928*20210101*120000*1*X*005010X279A1~ST*270*0001*005010X279A1~BHT*0022*13*00000000000000000000000000*20210101*1200~HL*1**20*1~NM1*PR*2*UnitedHealthcare*****PI*87726~HL*2*1*21*1~NM1*1P*2*Provider Name*****XX*1999999984~HL*3*2*22*1~NM1*IL*1*Doe*John****MI*UHC202649~HL*4*3*23*0~TRN*1*00000000000000000000000000*3117151744~NM1*03*1*Doe*Jane~DMG*D8*19521121~EQ*30~SE*14*0001~GE*1*1~IEA*1*000000001~]]> ' ``` ```xml X12_271_Response_005010X279A1 RealTime 019f48e6-8ec3-7110-a477-ed6d8731bbdb 2026-07-09T22:01:37Z STEDI STEDI 2.2.0 Success ``` ### Delimiter normalization [#delimiter-normalization] Stedi reserves certain characters for delimiters in X12 EDI transactions. When these delimiter characters appear within data values - meaning they're used as content and not as actual delimiters, such as within a subscriber's name - Stedi replaces them to prevent parsing issues. Stedi normalizes delimiters within transaction data as follows: | Character found in data | Replacement | Stedi's reserved delimiter type it conflicts with | | ----------------------- | ----------- | ------------------------------------------------- | | `*` | `\|` | Element separator | | `^` | `\|` | Repetition separator | | `` ` `` | `'` | Component element separator | | `~` | `\|` | Segment terminator | **Examples:** - `O*CONNOR` becomes `O|CONNOR` - `CODE^01` becomes `CODE|01` - ``O`CONNOR`` becomes `O'CONNOR` - `MSG~HELLO` becomes `MSG|HELLO` If you parse raw X12 EDI responses, ensure your parser reads delimiters from the `ISA` segment instead of assuming fixed delimiters. ### Retries [#retries] Implementing the right retry strategy for eligibility check failures saves a lot of time and money. At a minimum, we **strongly recommend** automatically retrying every request that fails due to payer connectivity issues. Automatic retries resolve a significant portion of these types of failures without manual intervention. Visit [Retry strategy](/healthcare/eligibility-troubleshooting#retry-strategy) for details. ### Response times [#response-times] Response times depend almost entirely on the payer and can vary significantly between different payers. Stedi's API adds negligible latency. Most eligibility checks complete in 1-2 seconds. Nine out of ten complete within 9 seconds, and the slowest can take up to a minute. ### Timeout [#timeout] Insurance payers may take up to 60 seconds to respond to a request, but Stedi holds real-time eligibility check requests open for up to 120 seconds before timing out. During this period, Stedi attempts multiple retries to payers in an effort to complete your request. Canceling and retrying requests before Stedi's automatic retry period ends may create multiple ongoing requests to payers and increase your concurrency usage. #### Request hedging [#request-hedging] When eligibility responses take too long, you can use request hedging to try to get results faster. To implement request hedging, send a second request at some internal duration cutoff (for example, 30 seconds) without canceling the first request. Then, you can use whichever result comes back first. If one of the requests fails, you can wait for the second request to see if it's successful. ### Concurrency limit [#concurrency-limit] Our real-time eligibility check endpoints share a concurrency pool with other real-time healthcare APIs. For more information, visit [Concurrency Limits](/healthcare/api-reference#concurrency-limits). ### Recommended API clients [#recommended-api-clients] You may want to use an API client to make testing and debugging easier. We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead. ## Eligibility check ID [#eligibility-check-id] Stedi assigns a globally unique identifier to each eligibility check, formatted as `ec_`. For example: `ec_f81d4fae-7dec-11d0-a765-00a0c91e6b12`. Stedi returns the unique eligibility check ID in the following locations: - **SOAP:** `stedi-id` header in the HTTP response - **JSON and Raw X12:** `id` property in the JSON response You can use this eligibility check ID to debug failures, correlate retries, and link directly to an eligibility check's results in the Stedi portal. The format for direct portal links is: `https://portal.stedi.com/app/healthcare/eligibility/{search-id}/inspect/{check-id}`, where `{search-id}` is the [eligibility search ID](/healthcare/api-reference/post-eligibility-check#response.eligibilitySearchId) and `{check-id}` is the unique Stedi-assigned eligibility check ID. You can find the eligibility search ID at the top of an eligibility check's details page in the portal. Visit the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks) to review a list of your eligibility checks. ## Provider name [#provider-name] Some payers return different benefits information depending on the provider name in the eligibility check, even when the National Provider Identifier (NPI) is the same. For example, when a check uses a placeholder name instead of the provider's name, a payer can return a limited set of benefits, or return out-of-network benefits instead of in-network benefits. We recommend using the name on the provider's National Plan and Provider Enumeration System (NPPES) record. Only use a different name if you believe that the provider name on file with the payer differs from the provider name in NPPES. If the name in the check doesn't match the payer's records, the payer can return different or incomplete benefits information. For API requests, we recommend omitting the provider name in your request - Stedi uses the name on the provider's NPPES record when it sends the check. In the Stedi portal, the eligibility form fills in the NPPES name when you enter the NPI, so we recommend keeping that name. If you leave the provider name out, Stedi uses the name on the provider's NPPES record for the NPI. This works for both individual (Type 1) and organization (Type 2) NPIs. Stedi uses the record's last, first, and middle name and suffix where available, or its organization name, and sets the entity type to match. It only uses the record's primary name, not other names listed on the record. If Stedi can't get a name from NPPES, such as when the check doesn't include an NPI or there's no active NPPES record, it uses `PROVIDER`. Stedi still sends the check and doesn't return an error. Stedi only fills in the name when the last name or organization name is missing. If you include a name or a placeholder, such as `PROVIDER`, Stedi doesn't replace it. ## Patient information [#patient-information] Follow this guidance to help payers find the patient in their system. ### Payer search requirements [#payer-search-requirements] All payers are required to be able to search for patients using the following "bare minimum" subsets of information. They return benefits information as long as they can find a unique match for the patient within their system. For a subscriber: - Member ID, first name, last name, date of birth - Member ID, last name, date of birth - Member ID, first name, last name For a dependent: - Subscriber member ID (in the `subscriber` object), first name, last name, date of birth - Subscriber member ID, last name, date of birth - Subscriber member ID, first name, last name Of course, not all of this patient information is always available. For example, a patient may forget their ID card. In these instances, some payers may still be able to search with even less information, such as the patient's first name, last name, and date of birth. Contact us if you have questions about alternative search options for a particular payer. ### Dependents [#dependents] The patient qualifies as a dependent for eligibility checks when: 1. The insurance plan lists the patient as a dependent on the subscriber's policy. 1. The payer cannot uniquely identify the patient through information outside the subscriber's policy. When the patient meets these criteria, submit their information in the `dependent` object (JSON) or `Loop 2000D` (X12 EDI). Otherwise, you must submit their information in the `subscriber` object (JSON) or `Loop 2000C` (X12 EDI) instead. For example, if the dependent has their own member ID number in the payer's database, you must identify them as a subscriber. This includes member IDs that differ only by a suffix, such as `01`, because the patient can still be uniquely identified. #### Medicaid dependents [#medicaid-dependents] Most Medicaid plans don't support dependents. However, some state Medicaid plans support eligibility inquiries for newborn children under 12 months old. Children typically must enroll in Medicaid as a separate subscriber with their own unique member ID, even if they are legally the dependent of a parent who is a Medicaid plan member. Therefore, you'll almost always need to submit the child as a subscriber in the `subscriber` object (JSON) or `Loop 2000C` (X12 EDI). Sending the `dependent` object (JSON) or `Loop 2000D` (X12 EDI) to payers that don't support dependents either causes an error, or the payer may ignore the information and return results for the subscriber instead. ### Patient names [#patient-names] Note the following information and best practices when entering patient names: - Enter the name exactly as written on the patient's insurance ID card (if available), including any special or punctuation characters such as apostrophes, hyphens (dashes), or spaces. If the patient's insurance ID card isn't available, enter the name exactly as written on a government-issued ID card. If a government ID card isn't available, enter the name exactly as given by the patient. - Don't include a name prefix, title, rank, honorific, or academic degree in any property. These include Mrs., Dr., Hon., and PhD. - Don't include a suffix or generation such as Jr. or `III` in the `name.person.firstName` or `name.person.lastName` property. Put it in the separate `name.person.suffix` property instead. Payers typically automatically parse suffixes out of the last name, but Stedi can't guarantee that all payers do this correctly. - You can populate a middle name (or names) or initial in the `name.person.middleName` property, but most payers ignore it when searching for the patient. - Case doesn't matter. For example, `JANE` is equivalent to `Jane`. You can use the following for patient names: - Compound last and first names separated by spaces or hyphens such as Jean‐Claude or Smith Jones - Apostrophized or elided names such as O'Connor or D'Amore - Numbers like 3, however this typically indicates a data entry error Some payers may have more specific requirements or restrictions that we don't cover in our docs. If you're receiving errors for a specific payer, we recommend consulting that payer's documentation for eligibility checks for additional guidance. ### MBI for CMS checks [#mbi-for-cms-checks] A Medicare Beneficiary Identifier (MBI) is a unique, randomly-generated identifier assigned to individuals enrolled in Medicare. You must include the patient's MBI in every eligibility check to the Centers for Medicare and Medicaid Services (payer ID: CMS). Some payers return the patient's MBI in one of the following properties of the standard eligibility response: - [`benefitsInformation[].benefitsAdditionalInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.benefitsInformation.benefitsAdditionalInformation.hicNumber) - [`planInformation.hicNumber`](/healthcare/api-reference/post-healthcare-eligibility-legacy#response.planInformation.hicNumber) If the value in either of these properties matches the format specified in the [Medicare Beneficiary Identifier documentation](https://www.cms.gov/training-education/partner-outreach-resources/new-medicare-card/medical-beneficiary-identifiers-mbis), the number is likely an MBI, and we recommend sending a follow-up eligibility check to CMS for additional benefits data. You're most likely to receive an MBI in eligibility check responses from commercial Medicare Advantage plans, but they can also be present in responses from Medicaid plans for dual-eligible patients. When you don't know a patient's MBI, you can use Stedi's eligibility check APIs to perform an MBI lookup instead of a standard eligibility check. Stedi returns a complete benefits response from CMS with the patient's MBI in the `subscriber` object for future reference. Visit [Medicare Beneficiary Identifier (MBI) lookup](/healthcare/mbi-lookup) for complete details. **Don't** submit eligibility checks for Medicare Advantage plans to CMS (HETS) – you should submit them to the actual Medicare Advantage plan payer instead. ## CMS traceability requirements [#cms-traceability-requirements] All parties involved in HETS eligibility transactions must comply with the [HETS Rules of Behavior](https://www.cms.gov/research-statistics-data-and-systems/cms-information-technology/hetshelp/downloads/eligibilitytransactionsysteminquiriesrulesofbehavior.pdf). Compliance is also required under our terms. Review the Rules of Behavior before sending eligibility checks to CMS. Starting November 8, 2025, the Centers for Medicare & Medicaid Services (CMS) requires submitters to include the entire chain of network hops for every eligibility request sent to CMS's eligibility system, HETS. Specifically, requests must include an `X-Forwarded-For` HTTP header containing the network IP addresses from the point of origin through receipt by the HETS system. CMS expects `X-Forwarded-For` to list each IP, comma-separated, starting with the originating system and continuing through every intermediary. To comply with this requirement: - You must collect all IP addresses for upstream requests and pass them in the standard `X-Forwarded-For` header when calling Stedi's API. If you are yourself an intermediary – for example, an RCM, EHR, or PMS system – you'll need to coordinate with your providers and any third-party organizations to ensure they include the Network IP details as part of the `X-Forwarded-For` header. This enables CMS to receive a complete list of all IPs, including the original initiator of the request (typically, the provider). - Stedi records the IP address you use when you call our API, as well as all the IP addresses listed in the `X-Forwarded-For` header. We include these IP addresses in the list submitted to CMS. You only need to include the `X-Forwarded-For` header in eligibility requests when there are upstream IP addresses. The following examples illustrate when and how to include the header: | Scenario | `X-Forwarded-For` required? | Result | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | | A provider (IP `2.2.2.2`) connects directly to Stedi without intermediaries. | No. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2` | | A provider (IP `2.2.2.2`) routes through an RCM platform's transactional system (IP `3.3.3.3`) that calls Stedi's API using a separate integration backend (IP `4.4.4.4`). | Yes. The RCM platform sets `X-Forwarded-For: 2.2.2.2, 3.3.3.3`. Stedi records the IP address of the API caller (`4.4.4.4` ) and sends it to CMS. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2, 3.3.3.3, 4.4.4.4`. | | A provider network (IP `2.2.2.2`) passes through an office firewall (IP `4.4.4.4`) and then an RCM platform (IP `3.3.3.3`), which calls Stedi's API. | Yes. The RCM platform sets `X-Forwarded-For: 2.2.2.2, 4.4.4.4`. Stedi records the IP address of the API caller (`3.3.3.3`) and sends it to CMS. | CMS ultimately receives `X-Forwarded-For: 2.2.2.2, 4.4.4.4, 3.3.3.3`. | ### U.S. IP address requirement [#us-ip-address-requirement] Stedi blocks eligibility requests to CMS when any IP address in the chain – the originating IP address or any in the X-Forwarded-For header – is located outside the United States. # Stedi Agent Source: https://www.stedi.com/docs/healthcare/stedi-agent The Stedi Agent is an AI assistant that helps you resolve common issues with eligibility checks and answers questions about supported payers. All plans provide access to the Stedi Agent. To use it, you must be at least an [Operator](/healthcare/account-settings#members) role within your Stedi account. To go to the Stedi Agent [**Chats** page](https://portal.stedi.com/app/healthcare/chats), click the agent icon at the top of the side navigation. ## Find coverage with Agentic Discovery [#find-coverage-with-agentic-discovery] Agentic Discovery helps you find a patient's insurance coverage and benefits through an automated workflow. It's our recommended way to run eligibility checks in the Stedi portal. When you start an Agentic Discovery check, the agent runs an eligibility check. If the check succeeds, the workflow stops. If it fails, the agent automatically recovers the check using Stedi's best practices. If recovery still fails, the agent runs an insurance discovery check to find coverage using the patient's demographic information. Insurance discovery checks can find coverage even if the original eligibility check had missing or incorrect information. For example, if the eligibility check used the wrong payer. For instructions on how to run Agentic Discovery checks, visit [Submit eligibility checks - Manual](/healthcare/send-eligibility-checks-ui). ## Get payer details [#get-payer-details] The Stedi Agent can answer your questions about supported payers. It can help you: - Find the payer ID for supported payers. - Map your internal payer names to Stedi's supported payers. - Determine which payers require [transaction enrollment](/healthcare/transaction-enrollment). - Identify which payers support medical, dental, or both use cases. - Get help with other payer-related questions. To start chatting with the Stedi Agent: 1. Go to the [Chats page](https://portal.stedi.com/app/healthcare/chats) in the Stedi portal. 2. Click **New chat** and select **Payer Finder**. 3. Type your question in the chat window and press **Enter.** For example, you could ask "What is the payer ID for Aetna?" or "Does Cigna support dental eligibility checks?" You can also ask more complex questions, like "Which payers support dental eligibility checks and require transaction enrollment?" Talk to Stedi Agent like you would a human support agent. 4. Ask follow-up questions as needed. You can ask multiple questions about different payers in the same chat. The Stedi Agent will respond to your questions and display its answers in the chat window. ## Identify payer from member card [#identify-payer-from-member-card] When you're unsure which payer ID to use based on the insurance information on the patient's card, you can upload the member card to the Stedi Agent. The agent analyzes the card and works to identify the correct payer ID, helping you avoid failed eligibility checks due to incorrect payer information. This is particularly useful when: - You have the patient's insurance card in front of you or have a scanned copy available - The payer name on the card doesn't clearly match a payer in the [Payer Network](https://www.stedi.com/healthcare/network) - You want to verify the correct payer before submitting an eligibility check To identify a payer from a member card: 1. Go to the Stedi Agent [**Chats** page](https://portal.stedi.com/app/healthcare/chats) in the Stedi portal. 2. Click **New chat** and select the **Upload member ID card** option. 3. Upload a photo or scan of the front of the patient's insurance member card. 4. Review the results. The agent analyzes the card and either: - Successfully maps the information on the insurance card to a payer in Stedi's [Payer Network](https://www.stedi.com/healthcare/network). In this case, the agent returns information about the matching payer, including the payer's primary payer ID, Stedi payer ID, operating states, and supported transactions. - Indicates that it cannot read the information from the card. Try taking a clearer picture and resubmitting. - Indicates that it cannot determine the payer ID. Contact Stedi support. ## Review chat history [#review-chat-history] You can review a list of all past chats with the Stedi Agent on the [Chats page](https://portal.stedi.com/app/healthcare/chats) in the Stedi portal. Click any chat to open it and review the conversation history. You can restart any previous chat by sending a new message. The chat history contains both your conversations about payer details and any recovery attempts the agent made while troubleshooting eligibility check failures. ## Usage notes [#usage-notes] Please note: - The Stedi Agent is available on all paid Stedi plans at no additional cost beyond those for related API calls. - The agent is assistive. Outputs can be incorrect or incomplete. Verify all responses before taking any action based on them. - You are responsible for any actions you instruct or authorize the AI service to take, including generating billable requests on your behalf. - Your chats with the Stedi Agent aren't private - they're visible to anyone with access to your Stedi account. ## Stedi Agent vs. MCP server [#stedi-agent-vs-mcp-server] The Stedi Agent and the Model Context Protocol (MCP) server can both help you resolve failed eligibility checks and find payer information, but they serve different use cases. - The [Stedi Agent](/healthcare/stedi-agent) is a Stedi-controlled, AI assistant within the Stedi portal. It's ready to use whenever you need it. Unlike the MCP server, you can't manage or invoke the Stedi Agent programmatically - you can only use it within the Stedi portal. The Stedi Agent is built on top of the MCP server, meaning it uses the MCP server's exposed tools to perform actions. - The [MCP Server](/healthcare/mcp-server) provides a set of tools, which are a wrapper around Stedi's APIs, that AI agents can use to find payer information and perform and troubleshoot eligibility checks. The MCP server includes the same retry logic (in a prompt) that the Stedi Agent uses to automatically resolve eligibility check failures. You can use the MCP server to build your own AI agents tailored to your use case. Unlike the Stedi Agent, you'll need to install and configure the MCP server for your preferred AI agent. # Claim attachments Source: https://www.stedi.com/docs/healthcare/submit-claim-attachments Submit claim attachments for professional, dental, and institutional claims using Stedi's API, SFTP, or the Stedi portal. Claim attachments are additional documents that help justify or validate a claim. They're typically required when the claim alone doesn't provide enough information for the payer to make a decision, such as when a procedure is unusual, high-cost, or uses an unlisted code. Attachments can include medical records, treatment plans, radiographs, photographs, itemized bills, and letters from providers - the type required for each claim depends on the services listed and the payer's rules. For example, a claim for a dental crown may require X-rays, while a claim for a surgery may require an operative report. You can submit [unsolicited 275 claim attachments](#solicited-vs-unsolicited-attachments) for professional, dental, and institutional claims in either JSON or X12 EDI format. For professional claims you can also submit attachments through the Stedi portal. Stedi supports attachments for both electronic and [paper claims](/healthcare/submit-paper-claims#paper-claim-attachments). ## Supported payers [#supported-payers] You can check which payers support 275 claim attachments using the [Payer Network](https://www.stedi.com/healthcare/network) or the [Payers API](/healthcare/api-reference/get-payer). If you try to submit claim attachments to a payer that doesn't support them, Stedi blocks the submission before it reaches the payer: - **APIs:** When you submit a claim with attachments to an unsupported payer, Stedi returns a `400` HTTP error with an explanatory error message. For example: ```json { "code": "TRANSACTION_TYPE_NOT_SUPPORTED", "message": "Payer 62308 (Stedi Payer ID HGJLR) is not configured for Unsolicited Claim Attachment (275). Please check our published payer list or contact Stedi support to resolve." } ``` - **SFTP:** When you submit a claim with attachments to an unsupported payer, Stedi rejects it with a [277CA claim acknowledgment](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) explaining the issue. For example: ``` STC*A7:N21*[DATE]*PR*[AMOUNT]********Payer 62308 (Stedi Payer ID HGJLR) is not configured for Unsolicited Claim Attachment (275). Please check our published payer list or contact Stedi support to resolve.~ ``` When Stedi doesn't support attachments, you can submit them outside of Stedi - for example, directly to the payer's portal. Then, you can reference them in the claims you submit through Stedi. Contact [Stedi Support](https://www.stedi.com/contact) with questions about supported payers or for help optimizing your attachments workflow. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 275 claim attachments. When required, this enrollment process is separate from the transaction enrollment process for 837 claims. You can check whether a specific payer requires transaction enrollment for 275 attachments in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the type of claim attachments you plan to send (solicited or unsolicited). [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) ## Test claim attachments [#test-claim-attachments] You can submit test claim attachments as part of your test workflow. Visit [Test claim workflows](/healthcare/test-claims-workflow) for complete instructions on sending test claims and receiving test responses. ## Submit claim attachments [#submit-claim-attachments] Unsolicited 275 claim attachments are a separate transaction type from 837 claims. They're linked to the claim through [specific identifiers](#reference-attachments-in-a-claim) that indicate an attachment follows the claim submission. The submission methods available for 275 claim attachments depend on whether you're submitting with electronic or [paper claims](/healthcare/submit-paper-claims). For paper claims, see the [Paper](#paper) section below. For electronic claims, the available submission methods depend on the claim type: - **Professional claim attachments:** [claim form UI](#claim-form-ui), [JSON APIs](#json-apis), [X12 EDI APIs](#x12-edi-apis), and [SFTP](#sftp) - **Dental claim attachments:** [JSON APIs](#json-apis), [X12 EDI APIs](#x12-edi-apis), and [SFTP](#sftp) - **Institutional claim attachments:** [JSON APIs](#json-apis), [X12 EDI APIs](#x12-edi-apis), and [SFTP](#sftp) ### Claim form UI [#claim-form-ui] You can submit attachments through the Stedi portal at the same time you manually submit a professional claim. The claim submission UI is based on the CMS-1500 form. - **Electronic:** Visit [Submit professional claims](/healthcare/submit-professional-claims-ui) for instructions. - **Paper:** Visit [Paper claims](/healthcare/submit-paper-claims#cms-1500-form-ui) for instructions. Stedi doesn't support UI attachment submission for dental or institutional claims. ### JSON APIs [#json-apis] You can submit [unsolicited claim attachments](#solicited-vs-unsolicited-attachments) through Stedi JSON APIs for all claim types. Submitting claim attachments in JSON requires three steps: Call the [Create Claim Attachment (275) JSON](/healthcare/api-reference/post-healthcare-create-claim-attachment) endpoint to receive a pre-signed URL that you can use to upload the attachment file to Stedi. The response also contains an `attachmentId` that you'll include in the claim submission. Use a `PUT` request to upload the attachment file to the pre-signed URL (`uploadUrl`) in the response. The request must include a `Content-Type` header that matches the MIME type you specified for the attachment file. The following example shows how to upload a JPEG attachment: ```bash curl --request PUT \ --url "" \ --header "Content-Type: image/jpeg" \ --upload-file /path/to/file.jpeg ``` We recommend limiting attachments to 64MB each, but some payers may have different size requirements. When in doubt, check the payer's documentation to determine their specific limits. Stedi stores uploaded files for 45 days. After that, you must reupload the attachment file before you can submit it to the payer. Call one of the following claim submission endpoints: - [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) - [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) - [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims) - [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) You must include [specific properties](#reference-attachments-in-a-claim) in your request to identify the attachment and tell Stedi which attachment file to use. The required properties vary by endpoint. Stedi sends the claim and the claim attachment to the payer and then returns summary information about the claim submission. The payer processes the claim and attachment together, and sends back [277CA and 835 ERA responses](/healthcare/submit-claim-attachments#payer-responses). ### X12 EDI APIs [#x12-edi-apis] You can submit [unsolicited claim attachments](#solicited-vs-unsolicited-attachments) through Stedi X12 EDI APIs for all claim types. This approach is useful when you have an existing system that generates X12 EDI files and you want to send them through Stedi. With X12 EDI submissions, you don't need to upload the attachment file to Stedi first - you can send the entire 275 transaction directly to the payer. Submitting claim attachments through our X12 EDI APIs requires two steps: Call one of the following endpoints: - [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) - [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12) - [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12) In addition to the claim information, you must include [specific elements](#reference-attachments-in-a-claim) in either `Loop 2300` or `Loop 2400` (professional and institutional claims only) to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`. Only include attachment details when you plan to submit an attachment. Some payers stall claim processing indefinitely if you include a `PWK` segment without sending an associated attachment. Call the [Submit Claim Attachment (275) X12 EDI](/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12) endpoint. Stedi sends the 275 transaction to the payer and returns summary information about the submission. - **Payer ID:** You must submit a payer identifier in `Loop 1000A NM109` so Stedi can route the attachment to the correct payer. This identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). For example, you could use `60054`, `HPQRS`, `AETNA`, or any other listed payer ID alias for Aetna. - **Attachment Control Number:** You must also submit the attachment control number in `Loop 2000A TRN02` (Payer Claim Control Number or Provider Attachment Control Number). It must match the value you submitted in the claim's `Loop 2300 PWK06` or `Loop 2400 PWK06` (Attachment Control Number). This is how Stedi and the payer match the attachment with the claim. The size limit for attachments submitted in a single API request is 6MB. If you need to submit larger attachment files, you must submit them through Stedi SFTP or the JSON endpoints. Once received, the payer processes the claim and attachment together and sends back [277CA and 835 ERA responses](/healthcare/submit-claim-attachments#payer-responses). ### SFTP [#sftp] You can submit [unsolicited claim attachments](#solicited-vs-unsolicited-attachments) in X12 EDI format through SFTP for all claim types. SFTP submission is ideal if you have attachments that are larger than 6MB. Submitting claim attachments through SFTP requires sending two transactions to the payer. You can send these transactions as separate files or together in the same file as long as the claim and the attachment are within the same interchange (`ISA`/`IEA`) envelope: Submit an 837 professional, dental, or institutional claim to the payer through [Stedi SFTP](/healthcare/submit-claims-sftp-connection#837-claims). You must include specific elements in either `Loop 2300` or `Loop 2400` (professional and institutional claims only) to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`. Only include attachment details when you plan to submit an attachment. Some payers stall claim processing indefinitely if you include a `PWK` segment without sending an associated attachment. Submit a 275 claim attachment to the payer through [Stedi SFTP](/healthcare/submit-claims-sftp-connection#275-claim-attachments). - **Payer ID:** You must submit a payer identifier in `Loop 1000A NM109` so Stedi can route the attachment to the correct payer. This identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). For example, you could use `60054`, `HPQRS`, `AETNA`, or any other listed payer ID alias for Aetna. - **Attachment Control Number:** You must also submit the attachment control number in `Loop 2000A TRN02` (Payer Claim Control Number or Provider Attachment Control Number). It must match the value you submitted in the claim's `Loop 2300 PWK06` or `Loop 2400 PWK06` (Attachment Control Number). This is how Stedi and the payer match the attachment with the claim. We recommend limiting attachments to 64MB each, but some payers may have different size requirements. When in doubt, check the payer's documentation to determine their specific limits. Once received, the payer processes the claim and attachment together and sends back [277CA and 835 ERA responses](/healthcare/submit-claim-attachments#payer-responses). ### Paper [#paper] You can submit attachments with paper claims using [JSON APIs](#json-apis), [SFTP](#sftp), or the [Claim form UI](#claim-form-ui). The raw X12 EDI API endpoints don't support paper claims with attachments. Use the JSON APIs, SFTP, or the Claim form UI instead. Follow the instructions for your chosen submission method, plus these additional requirements for paper claims: - Set the receiver ID to `PAPER` in the 837 claim to route it for printing and mailing - The attachment must be a PDF. Stedi doesn't support other file types for paper claim attachments. - **For JSON API submissions:** Create the attachment with `contentType` set to `application/pdf`, then include the `attachmentId` from the [Create Claim Attachment](#json-apis) response in your claim submission. - **For SFTP submissions:** Ensure the attachment control number matches in both the 837 claim and the 275 attachment: - **837 claim:** `Loop 2300 PWK06` (Attachment Control Number) for claim-level attachments or `Loop 2400 PWK06` (Attachment Control Number) for service line attachments - **275 attachment:** `Loop 2000A TRN02` (Payer Claim Control Number or Provider Attachment Control Number) - The 837 and 275 must be in the same interchange. - The 275 `Loop 2110B BIN02` (Binary Data) must contain a PDF file encoded as MIME Base64. Visit [Paper claim attachments](/healthcare/submit-paper-claims#paper-claim-attachments) for the required format. For complete instructions on paper claims, including required identifiers and lifecycle tracking, visit [Submit paper claims](/healthcare/submit-paper-claims). ## Reference attachments in a claim [#reference-attachments-in-a-claim] To submit an unsolicited claim attachment, you must submit a claim that references the attachment(s) in the appropriate location. When submitting claims through Stedi APIs or SFTP, include the following properties or elements to identify the attachment(s). If you're submitting claims manually, visit [Submit professional claims](/healthcare/submit-professional-claims-ui) for instructions. ### Attachment level [#attachment-level] You can specify attachments that relate to the entire claim or to a specific service line. #### Entire claim [#entire-claim] For professional, dental, and institutional claims, you can specify claim-level attachments in the following locations: - **Professional Claim JSON:** `encounter.attachments[]` array. API reference docs: [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json#body.encounter.attachments) - **837P JSON (Legacy), 837D JSON, and 837I JSON:** `claimInformation.claimSupplementalInformation.reportInformation` object or `claimInformation.claimSupplementalInformation.reportInformations` array (for multiple attachments). These structures correspond to segment `PWK` in `Loop 2300`. API reference docs: [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimSupplementalInformation.reportInformation) | [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimSupplementalInformation.reportInformation) | [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimSupplementalInformation.reportInformation) #### Service line [#service-line] - **Professional Claim JSON:** Specify service line attachments in the `serviceLines[].attachments[]` array. API reference docs: [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json#body.serviceLines.attachments) - **837P JSON (Legacy):** Specify service line attachments in the `claimInformation.serviceLines[].serviceLineSupplementalInformation` array. This array corresponds to segment `PWK` in `Loop 2400`. API reference docs: [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformation) - **837I JSON:** Specify service line attachments in the `claimInformation.serviceLines[].serviceLineSupplementalInformation` object or the `claimInformation.serviceLines[].serviceLineSupplementalInformations` array (for multiple attachments). These structures correspond to segment `PWK` in `Loop 2400`. API reference docs: [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformation) ### Required properties [#required-properties] Both claim and service line attachments require the following properties to inform the payer that an attachment will follow the claim submission. Only include attachment details when you plan to submit an attachment. Some payers stall claim processing indefinitely if you include attachment details but don't send an associated attachment. {/* prettier-ignore-start */} | JSON property | X12 EDI | Description | | ------------- | ---------------- | ----------- | | `attachmentReportTypeCode` | `PWK01` | This code identifies the type of report or document you plan to submit as an attachment. Visit [Code lists](/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of valid codes. | | `attachmentTransmissionCode` | `PWK02` | Set to `EL` when submitting attachments through Stedi. This property indicates the attachment will be sent in a separate, electronic 275 transaction. | {/* prettier-ignore-end */} You must also include **one** of the following properties, depending on your use case. Specifically, you should only include the attachment control number when you're not submitting the attachment file through Stedi (for example, you submitted the attachment directly through a payer's portal). Otherwise, include the attachment ID. {/* prettier-ignore-start */} | JSON property | X12 EDI | Description | | ------------- | ---------------- | ----------- | | `attachmentControlNumber` | `PWK06` | A unique identifier for the attachment. The payer uses this value to match the attachment to the claim. We recommend using a ULID or UUID of up to 50 characters.
  • X12 EDI submissions: This property is **required**.
  • JSON submissions: Only include this property when you aren't submitting the attachment file through Stedi's API. For example, you submitted the attachment directly through a payer's portal.
| | `attachmentId` | - | The attachment ID you received in the [Create Claim Attachment (275) JSON](/healthcare/api-reference/post-healthcare-create-claim-attachment) response. It tells Stedi which file to use when generating the 275 transaction for the payer. This property is **required** if you're submitting attachments through a JSON endpoint. | {/* prettier-ignore-end */} ## Reference the claim in attachments [#reference-the-claim-in-attachments] 275 attachment transactions must include an identifier that allows the payer to match it with the associated 837 claim. {/* prettier-ignore-start */} | Submission method | Identifier | Description | | ----------------- | ---------- | ----------- | | JSON APIs | - | You don't need to supply your own identifier. The [Create Claim Attachment (275) JSON](/healthcare/api-reference/post-healthcare-create-claim-attachment) endpoint returns an `attachmentId` that you include in the claim submission. | | X12 EDI and SFTP | `Loop 2000A TRN02` (Payer Claim Control Number or Provider Attachment Control Number) | The `TRN02` value must match the `PWK06` (Attachment Control Number) in the claim. | {/* prettier-ignore-end */} ## Solicited vs. unsolicited attachments [#solicited-vs-unsolicited-attachments] There are two types of claim attachments: - **Solicited:** The payer requests attachments for a submitted claim in a Request for Additional Information (277 RFA) transaction. In these cases, you must submit the attachment(s) in a separate 275 transaction that references the 277 RFA. - **Unsolicited:** The provider proactively sends attachments at their discretion without a prior request from the payer. In these cases, you must [reference the attachment(s) in the claim submission](/healthcare/submit-claim-attachments#reference-attachments-in-a-claim). You can only submit unsolicited claim attachments through Stedi APIs and SFTP. Check the [Payer Network](https://www.stedi.com/healthcare/network?filter=eyJ0cmFuc2FjdGlvblR5cGVzIjpbIjI3NVUiXSwiY292ZXJhZ2VUeXBlcyI6W10sIm9wZXJhdGluZ1N0YXRlcyI6W10sInByb2dyYW1zIjpbXX0%3D) to determine which payers support attachments. ## Payer responses [#payer-responses] The payer processes claims and claim attachments together. When you submit a claim attachment, you'll receive the same [277CA and 835 ERA responses](/healthcare/receive-claim-responses#retrieve-responses-from-stedi) for the claim as you would for a regular claim submission. If a claim is rejected, pended, or denied due to issues with attachments, you'll likely receive error codes in the 277CA response that indicate the issue. However, the exact error codes used depend on the payer's system and how they handle attachments. ## Concurrency limit [#concurrency-limit] Claim attachment endpoints share a concurrency pool with other claim endpoints. For more information, visit [Concurrency limits](/healthcare/api-reference#concurrency-limits). # Submit claims for atypical providers (no NPI) Source: https://www.stedi.com/docs/healthcare/submit-claims-atypical-providers An atypical provider delivers health-related services but isn't eligible for a National Provider Identifier (NPI). Examples include providers of: - Personal care - Home and vehicle modifications - Respite care - Adult foster care Federal rules don't count these services as health care, so these providers can't get an NPI even if they submit claims. Instead, the payer or a related issuer assigns the provider an ID to use in place of an NPI. Issuers call atypical provider IDs different names, including secondary identifiers and payer-assigned provider IDs. In most cases, the ID is only valid with the payer or program that issued it. For example, Medicaid Minnesota (payer ID: `JSZHK`) uses a Unique Minnesota Provider Identifier (UMPI). You must [register atypical providers](#register-the-provider) with Stedi before you submit their claims. Without registration, these claims may be rejected. ## Complete transaction enrollment [#complete-transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) registers a provider to exchange a specific transaction type, like a claim submission, with a payer. Some payers require enrollment for claim submission, and all payers require enrollment for Electronic Remittance Advice (ERAs). 1. Check enrollment requirements using the [Stedi Payer Network](https://www.stedi.com/healthcare/network) and our [Payers API](/healthcare/api-reference/get-payer). 2. If the payer requires enrollment: - Use `1999999984` as a placeholder NPI when creating the provider record. Don't use another placeholder value. Include the provider's real Taxpayer Identification Number (TIN). - [Submit an enrollment request](/healthcare/create-manage-transaction-enrollments#submit-enrollment-requests) through Stedi's API or the Stedi portal, which supports bulk CSV. 3. Submit an enrollment request for ERAs using the same placeholder NPI. ## Register the provider [#register-the-provider] Some payer connections require an NPI unless Stedi registers the provider as atypical. Registration lets those connections accept the atypical provider ID. Each combination of atypical provider ID, service location, and taxonomy code needs its own registration, even under the same TIN. For example, a provider who serves clients at two locations needs two registrations. To register, send information about the provider to Stedi support through the Stedi portal, email, or your dedicated Slack or Microsoft Teams channel. For each registration, provide: - The provider's TIN - The atypical provider ID, the type of ID, and the authority that issued it, such as a UMPI issued by the Minnesota Department of Human Services (DHS) - The notice from the issuing authority that lists the TIN and the atypical provider ID, if available - The provider's taxonomy code - The provider's service address - The payer and its Stedi payer ID - The enrollment request ID, if you submitted one We'll let you know when the registration is complete. ## Submit the claim [#submit-the-claim] Before you submit claims for the provider: - [Complete transaction enrollment](#complete-transaction-enrollment), if the payer requires it. - [Register the provider](#register-the-provider) and wait one business day after Stedi confirms the registration is complete. ### API and SFTP submission [#api-and-sftp-submission] You can submit claims for atypical providers through Stedi's JSON or Raw X12 API endpoints, or through SFTP. The following examples show where to put the atypical provider ID for each submission method. Use the [Create Professional Claim (CMS-1500) JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint. Omit `billing.billingProvider.identifiers.npi`. Put the atypical provider ID in `billing.billingProvider.identifiers.commercialNumber`: ```json { "billing": { "billingProvider": { "name": { "organization": "Example Adult Day Services LLC" }, "identifiers": { "commercialNumber": "A836117300", // Atypical provider ID "taxonomyCode": "310400000X" }, ... }, "taxId": { "ein": "820845106" }, // Provider's TIN ... }, ... } ``` To check the claim before you submit it, use the [Validate Professional Claim (CMS-1500) JSON](/healthcare/api-reference/post-validate-professional-claim-json) endpoint. It takes the same request body. Use the [Professional Claims (837P) JSON](/healthcare/api-reference/post-healthcare-claims) endpoint. Omit `billing.npi`. Put the atypical provider ID in `billing.commercialNumber`. Also set [`submitter.submitterIdentification`](/healthcare/api-reference/post-healthcare-claims#body.submitter.submitterIdentification). If you omit it, Stedi uses `billing.npi`, which these claims don't have. ```json { "billing": { "organizationName": "Example Adult Day Services LLC", "employerId": "820845106", // Provider's TIN "commercialNumber": "A836117300", // Atypical provider ID "taxonomyCode": "310400000X", ... }, ... } ``` Use the [Institutional Claims (837I) JSON](/healthcare/api-reference/post-healthcare-institutional-claims) endpoint. Omit `billing.npi`. Put the atypical provider ID in `billing.secondaryIdentifier`, and set `billing.secondaryIdentificationQualifierCode` to `G2`: ```json { "billing": { "organizationName": "Example Adult Day Services LLC", "employerId": "820845106", // Provider's TIN "secondaryIdentificationQualifierCode": "G2", // Provider Commercial Number "secondaryIdentifier": "A836117300", // Atypical provider ID "taxonomyCode": "310400000X", ... }, ... } ``` These instructions work for both 837P and 837I claims, whether you submit them through the [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) and [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12) endpoints or through [SFTP](/healthcare/submit-claims-sftp-overview): - In Loop `2010AA` (Billing Provider Name), find the `NM1` segment where `NM101` (Entity Identifier Code) = `85` (Billing Provider). Omit `NM108` (Identification Code Qualifier) and `NM109` (Billing Provider Identifier), which normally contain the provider's NPI. - Send the provider's TIN in `REF02` of Loop `2010AA`, and set `REF01` to: - **Professional claims**: `EI` (Employer's Identification Number), or `SY` (Social Security Number) when the provider's TIN is their Social Security Number. - **Institutional claims**: `EI` (Employer's Identification Number). - Send the atypical provider ID in `REF02` of Loop `2010BB` (Payer Name), where `REF01` = `G2` (Provider Commercial Number). For example: ``` HL*1**20*1~ NM1*85*2*EXAMPLE ADULT DAY SERVICES LLC~ // No NM108 or NM109 (no NPI) N3*123 MAIN ST~ N4*SAINT PAUL*MN*551011234~ REF*EI*820845106~ // Billing provider's TIN HL*2*1*22*0~ ... NM1*PR*2*MINNESOTA MEDICAID*****PI*JSZHK~ REF*G2*A836117300~ // Atypical provider ID ``` ### Manual submission [#manual-submission] You can submit claims for atypical providers in the Stedi portal through the CMS-1500 form, which supports professional claims only, or by uploading an X12 EDI file. To submit a professional claim for an atypical provider in the Stedi portal: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims), click **Submit claim**, and select **CMS-1500 form** from the dropdown. 2. Enter the billing provider's TIN in **Box 25** (Federal tax ID number). 3. If **Box 33** (Billing provider info) prompts you to prefill from an NPI, click **Or, enter manually**. 4. Leave **Box 33a** (NPI) blank. 5. In **Box 33b** (Other identifiers), enter the atypical provider ID in **G2 Provider Commercial Number** and the provider's taxonomy code in **ZZ Provider Taxonomy**. 6. Complete the rest of the form and click **Submit claim**. Visit [Submit professional claims - Manual](/healthcare/submit-professional-claims-ui) for details about the rest of the form. To submit an X12 EDI claim for an atypical provider in the Stedi portal: 1. Create the X12 EDI claim. These instructions work for both 837P and 837I claims: - In Loop `2010AA` (Billing Provider Name), find the `NM1` segment where `NM101` (Entity Identifier Code) = `85` (Billing Provider). Omit `NM108` (Identification Code Qualifier) and `NM109` (Billing Provider Identifier), which normally contain the provider's NPI. - Send the provider's TIN in `REF02` of Loop `2010AA`, and set `REF01` to: - **Professional claims**: `EI` (Employer's Identification Number), or `SY` (Social Security Number) when the provider's TIN is their Social Security Number. - **Institutional claims**: `EI` (Employer's Identification Number). - Send the atypical provider ID in `REF02` of Loop `2010BB` (Payer Name), where `REF01` = `G2` (Provider Commercial Number). For example: ``` HL*1**20*1~ NM1*85*2*EXAMPLE ADULT DAY SERVICES LLC~ // No NM108 or NM109 (no NPI) N3*123 MAIN ST~ N4*SAINT PAUL*MN*551011234~ REF*EI*820845106~ // Billing provider's TIN HL*2*1*22*0~ ... NM1*PR*2*MINNESOTA MEDICAID*****PI*JSZHK~ REF*G2*A836117300~ // Atypical provider ID ``` 2. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims), click **Submit claim**, and select **Upload raw X12 file**. 3. Click **Upload X12 EDI** and select the `.edi` file, or select the transaction type and paste the X12 EDI content. 4. Fix any validation errors that appear, then click **Submit claim**. Visit [Submit professional claims - Manual](/healthcare/submit-professional-claims-ui#x12-edi-upload) for details about X12 EDI upload, like test and production claims. ## Handle rejected claims [#handle-rejected-claims] Claims you submit for atypical providers before registration is complete can come back rejected. The rejection comes back in a [277CA claim acknowledgment](/healthcare/claim-status-codes#277ca-claim-acknowledgments). In the 277CA Report JSON response, the rejection error is in [`claimStatus.informationClaimStatuses[].statusMessage`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.informationClaimStatuses.statusMessage). In X12, it's in `Loop 2200D` (Claim Status Tracking Number) `STC12` (Free-form Message Text). The following example shows a typical error message: ``` Value of element NM108 is incorrect. Expected value is 'XX' for covered providers when National Provider ID is mandated for use. ``` To resolve the rejection: 1. Confirm that Stedi registered the provider for the claim's atypical provider ID, service location, and taxonomy code. If not, [register the provider](#register-the-provider). 2. After registration is complete, wait about one business day. 3. Resubmit the claim as a new original claim, not a corrected or replacement claim. Set the Claim Frequency Code (CFC) to `1` (Admit thru Discharge Claim) for professional claims, or use the CFC from the original submission for institutional claims. If the claim is rejected again with the same error, contact Stedi support. # Format and submit claims Source: https://www.stedi.com/docs/healthcare/submit-claims-sftp-connection After [setting up SFTP](/healthcare/submit-claims-sftp-setup), you're ready to start submitting 837 claims and unsolicited 275 claim attachments. ## Before sending claims [#before-sending-claims] You may need to complete the following steps before sending claims. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 837 claims through a new clearinghouse. You can check whether a specific payer requires transaction enrollment for 837 claims in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the claim type. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim submission, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. #### Best practices [#best-practices] - Leverage [batch enrollments](/healthcare/create-manage-transaction-enrollments#bulk-csv-import) when onboarding new provider groups or many providers at a time. - For ERAs, you can only be enrolled through one clearinghouse at a time per payer per provider. When your ERA enrollment is accepted through Stedi, you'll stop receiving ERAs through the previous clearinghouse. Every other transaction type accepts enrollment through more than one clearinghouse. ### Coordination of benefits check [#coordination-of-benefits-check] We recommend running a coordination of benefits (COB) check to ensure you submit claims to the correct payer. COB checks can help you determine: - If a patient is covered by more than one health plan - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for more information. ## Test claims [#test-claims] You can submit test claims through SFTP to validate your integration without sending claims to payers. Stedi offers two workflows: - **Test payer-specific edits:** Submit test claims to any payer and receive test 999 Implementation Acknowledgments and 277CA claim acknowledgments from Stedi. - **Generate a test ERA:** Submit test claims to the Stedi Test Payer and receive test 999s, test 277CAs, and a test 835 ERA from Stedi. Visit [Test claim workflows](/healthcare/test-claims-workflow) for details. ## Format X12 EDI files [#format-x12-edi-files] You must drop claims and claim attachments into the `to-stedi` directory in X12 EDI format. Stedi validates the claims and routes them to the appropriate clearinghouse based on the `ISA15` Interchange Usage Indicator element and the SFTP user type. ### ISA validation [#isa-validation] Stedi validates the `ISA` envelope to ensure `ISA08` (Interchange Receiver ID) and `ISA15` (Interchange Usage Indicator Code) match your [SFTP user type](/healthcare/submit-claims-sftp-setup#create-sftp-users) and the intended clearinghouse. If the values don't match, Stedi rejects the interchange with a TA1 Interchange Acknowledgment. In the TA1 rejection, `TA105` (Interchange Note Code) can be set to: - `008` (Invalid Interchange Receiver ID) when `ISA08` doesn't match the intended clearinghouse - `020` (Invalid Test Indicator Value) when `ISA15` doesn't match the SFTP user type The following table shows which combinations are permitted: {/* prettier-ignore-start */} | SFTP user type | ISA15 | ISA08 | Behavior | | -------------- | ----- | ----- | ---------------------- | | Test | `T` | `STEDITEST` | Accept | | Prod | `P` | `STEDI` | Accept | | Test | `T` | `STEDI` | Reject - `TA105` set to `008` | | Test | `P` | `STEDI` | Reject - `TA105` set to `020` | | Test | `P` | `STEDITEST` | Reject - `TA105` set to `020` | | Prod | `P` | `STEDITEST` | Reject - `TA105` set to `008` | | Prod | `T` | `STEDI` | Reject - `TA105` set to `020` | | Prod | `T` | `STEDITEST` | Reject - `TA105` set to `020` | {/* prettier-ignore-end */} The following example shows a TA1 rejection that resulted from sending a test claim through a production SFTP user. ``` ISA*00* *00* *ZZ*STEDI *ZZ*111222333444 *260602*2054*^*00501*000000050*0*T*`~ TA1*000000135*260527*1518*R*020~ IEA*0*000000050~ ``` ### 837 claims [#837-claims] Claims must adhere to the following X12 HIPAA claim specifications: - [837 Claim: Professional (X222A1)](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-professional-x222a1/01HR60MDFAGCSEJNKY8J38867Y) - [837 Claim: Institutional (X223A2)](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-institutional-x223a2/01JBHW2YXMN2F9KXK2PS0BFP9F) - [837 Claim: Dental (X224A2)](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-dental-x224a2/01JCJZ46AEK835RYV1BXQNBPK8) We recommend submitting one claim per file to make troubleshooting easier. However, an EDI Interchange can contain multiple transactions, so you can submit multiple claims within a single file if needed. Regardless of how many claims you submit in a file, Stedi processes each claim individually and returns each claim response as a separate file. #### Required elements [#required-elements] You must populate all required claim information according to the X12 HIPAA specification. You can submit any valid values in the `ISA` and `GS` envelope with a few exceptions listed in the following table. You must set the following elements to specific values: {/* prettier-ignore-start */} | Data | Location | Instructions | | ------- | -------- | ----------- | | Interchange Receiver ID | `ISA08` | Set to `STEDITEST` for test claims or `STEDI` for production claims. | Interchange Usage Indicator | `ISA15` | Set to `T` for test claims or `P` for production claims. You must use a test SFTP user to submit test claims and a production SFTP user to submit production claims. | | Group Control Number | `GS06` | Include a unique value for each claim so you can correlate [error 999 Implementation Acknowledgments](#monitor-for-999-rejections-strongly-recommended) with the original claim submission. Without a unique `GS06`, you won't be able to determine which claim was rejected. | | Implementation Guide Version Name | `ST03` | Set to the appropriate value for the claim type:
• Professional: `005010X222A1`
• Institutional: `005010X223A2`
• Dental: `005010X224A2` | | Payer ID | `Loop 2010BB NM109` | Submit a payer identifier listed in the [Payer Network](https://www.stedi.com/healthcare/network) so Stedi can route the claim to the correct payer. This identifier must be a payer ID or payer ID alias. You must include leading `0` characters - for example, use `00540` for SISCO, not `540`. | | Patient Control Number | `CLM01` | We recommend including a unique value for each claim. This value is returned in both the 277CA and 835 ERA responses, so you can use it to correlate responses with the original claim. | {/* prettier-ignore-end */} If your system requires you to send unique values in the `ISA` and `GS` envelope, you can find suggested configurations for each transaction type on the [SFTP setup page](https://portal.stedi.com/app/settings/developer/sftp) under **ISA settings**. The following example shows a professional claim in X12 EDI format. `ISA15` is set to `P`, as this is a production claim. ``` ISA*00* *00* *ZZ*401576130024 *ZZ*STEDI *260213*2039*^*00501*000000123*0*P*>~ GS*HC*574183004559*STEDI*20260213*203918*39*X*005010X222A1~ ST*837*0001*005010X222A1~ BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~ NM1*41*2*Data Health Services*****46*123435~ PER*IC**TE*5552223333~ NM1*40*2*AETNA*****46*60054~ HL*1**20*1~ PRV*BI*PXC*2084P0800X~ NM1*85*2*Billing Provider Name*****XX*1999999984~ N3*123 Some St*Floor 1~ N4*A City*NY*123450000~ REF*EI*123456789~ PER*IC*Data Health Services*TE*5553334444~ HL*2*1*22*0~ SBR*P*18*3335555******CI~ NM1*IL*1*Doe*John****MI*123456789~ N3*123 Some St~ N4*Somewhere*VA*123450000~ DMG*D8*20000101*M~ NM1*PR*2*AETNA*****PI*60054~ CLM*123456789*109.2***02>B>1*Y*A*Y*Y~ HI*ABK>F1111~ NM1*77*2*Service Facility Name~ N3*1234 Other St~ N4*A City*NY*123450000~ LX*1~ SV1*HC>90837>95*109.2*UN*1***1~ DTP*472*D8*20240101~ REF*6R*111222333~ SE*29*0001~ GE*1*39~ IEA*1*000000123~ ``` #### Claim identifier [#claim-identifier] `Loop 2300 REF02` (Claim Identifier for Transmission Intermediaries) has different usage rules depending on your role: - **Providers:** Don't include `Loop 2300 REF02` when `REF01` = `D9` in your claim submission. It's reserved for clearinghouses and intermediaries. You can use `Loop 2300 CLM01` (Patient Control Number) to correlate claims with responses instead. - **Clearinghouses and intermediaries:** You can optionally include `REF*D9` in your 837 submissions. Stedi always returns this value in `Loop 2200D REF*D9` of 277CA claim acknowledgments, allowing you to match these responses to the claim. #### Bulk claims [#bulk-claims] You can submit multiple claims in the same 837 transaction by including multiple instances of the following loops: - `Loop 2000A` (Billing Provider) - `Loop 2000B` (Subscriber) - `Loop 2300` (Claim Information) - You can submit up to 1,000 claim loops in each 837 transaction After submission, Stedi separates your bulk 837 transaction into individual claims and sends each claim separately to the payer. This includes multiple claims going to the same payer - Stedi sends all claims within a bulk submission individually to maintain consistency. The following example would produce 12 separate claims (2 x 3 x 2 = 12): - 837 transaction contains information for two billing providers (2x `Loop 2000A`) - Each billing provider has three subscribers (3x `Loop 2000B`) - Each subscriber has two claims (2x `Loop 2300`) By default, Stedi returns one 999 Implementation Acknowledgment when one or more transactions in the bulk 837 fail validation. 999s for fully accepted bulk transactions are opt-in only - visit [Monitor for 999 rejections](#monitor-for-999-rejections-strongly-recommended) for details. Then, you'll typically receive separate 277CA claim acknowledgments _for each claim_. Note that Stedi sends accepted claims to the payer, even if other claims within the batch fail our validation. You should monitor for [277CA rejections](/healthcare/submit-claims-sftp-retrieve-responses#277ca-claim-acknowledgment) and resubmit those claims accordingly. Each claim also receives its own test ERA from Stedi's test clearinghouse if the payer was `STEDI`. Visit [Test claim workflows](/healthcare/test-claims-workflow#workflow-2-generate-a-test-era) for complete instructions on sending test claims and receiving test responses. You'll be billed per claim submitted, not per bulk 837 transaction. For example, if you submit a bulk 837 transaction with 10 claims, you'll be billed for 10 claims. ### 275 claim attachments [#275-claim-attachments] You can submit unsolicited claim attachments through SFTP. Unsolicited attachments are sent proactively with the claim without a prior payer request. If a payer sends a Request for Additional Information (277 RFA), you cannot submit the requested attachments through Stedi. Before you can submit an attachment, you must first submit a claim that references the attachment(s) in the appropriate location. Visit [Claim attachments](/healthcare/submit-claim-attachments) for complete instructions. Claim attachments must adhere to the [275 Patient Information (X210)](https://portal.stedi.com/app/guides/view/hipaa/patient-information-x210/01HQ4HZ8ZBY2CZGPCVVM8JTK22) X12 HIPAA specification. #### Required elements [#required-elements-1] You must set the following elements to specific values: {/* prettier-ignore-start */} | Data | Location | Instructions | | ------- | -------- | ----------- | | Interchange Usage Indicator | `ISA15` | Set to `T` for test attachments or `P` for production attachments. You must use a test SFTP user to submit test attachments and a production SFTP user to submit production attachments. | | Implementation Guide Version Name | `ST03` | Set to `005010X210` for all 275 claim attachments. | | Payer ID | `Loop 1000A NM109` | Submit a payer identifier listed in the [Payer Network](https://www.stedi.com/healthcare/network) so Stedi can route the attachment to the correct payer. This identifier must be a payer ID or payer ID alias. You must include leading `0` characters - for example, use `00540` for SISCO, not `540`. | | Attachment Control Number | `Loop 2000A TRN02` | This value must match the value you submitted in the claim's `PWK06` element. This is how Stedi and the payer match the attachment with the claim. | {/* prettier-ignore-end */} The following example shows a 275 claim attachment in X12 EDI format. `ISA15` is set to `T`, as this is a test attachment. ``` ISA*00* *00* *ZZ*STEDI *ZZ*CIGNA *250227*2140*^*00501*000000001*0*T*>~ GS*PI*STEDI*CIGNA*20250227*214016*1*X*005010X210~ ST*275*1001*005010X210~ BGN*11*0001*20060915~ NM1*PR*2*CIGNA*****XV*62308~ NM1*41*2*XYZ SERVICES*****46*1999999976~ NM1*1P*2*THE HOSPITAL*****XX*3999000B01~ NX1*1P~ N3*123 Main~ N4*Miami*FL*11111~ NM1*QC*1*DOE*JOHN*J***MI*987654320~ REF*EJ*DOE123~ REF*EA*AAAAA12345~ DTP*472*D8*20060812~ LX*1~ TRN*2*11122233344~ STC*R4>18626-2>>LOI~ DTP*368*D8*20060915~ CAT*AE*TX~ EFI*05~ BIN*8*U3RlZGk=~ SE*20*1001~ GE*1*1~ IEA*1*000000001~ ``` #### Size limits [#size-limits] We recommend limiting attachments to 64MB each, but some payers may have different size requirements. When in doubt, check the payer's documentation to determine their specific limits. This limit is per attachment file - you can submit multiple attachment files in each 275 transaction. ### Paper claims [#paper-claims] Some payers require claims to be submitted on paper rather than electronically. When you send a claim and optional attachments through SFTP with paper-specific routing information, Stedi handles printing and mailing the claim to the payer on your behalf. For paper claims with attachments, you must submit both the 837 claim and 275 attachment in the same X12 interchange. The 275 `Loop 2110B BIN02` (Binary Data) must contain a PDF file encoded as MIME Base64. Visit [Paper claim attachments](/healthcare/submit-paper-claims#paper-claim-attachments) for the required format. Visit [Submit paper claims](/healthcare/submit-paper-claims#x12-edi---api-and-sftp) for complete requirements and examples. ## Send claims and attachments [#send-claims-and-attachments] Drop claim and attachment files into the `to-stedi` directory. Stedi automatically validates the data and then routes each transaction to the appropriate clearinghouse (test or production). Stedi deletes files from the `to-stedi` directory after processing them to avoid duplicate submissions. We **strongly recommend** [monitoring for 999 rejections](/healthcare/submit-claims-sftp-retrieve-responses#monitor-for-999-rejections-strongly-recommended) that indicate Stedi rejected at least one transaction in the file. Otherwise, your submissions may silently fail. # Submit claims through SFTP Source: https://www.stedi.com/docs/healthcare/submit-claims-sftp-overview Submit claims and claim attachments in X12 EDI through Stedi SFTP, and retrieve the responses the same way. You can use Stedi's fully-managed SFTP server to submit 837 claims and unsolicited 275 claim attachments to payers and retrieve responses without calling Stedi APIs. You must submit claims and attachments in X12 EDI format, and Stedi returns claim responses through the SFTP connection in X12 EDI format. This makes Stedi SFTP a good option if you have an existing system that generates X12 EDI files and you want to send them through Stedi without completing an API integration. ## How SFTP connections work [#how-sftp-connections-work] Use the following process to submit claims to Stedi: 1. Create SFTP users through the [SFTP setup](https://portal.stedi.com/app/settings/developer/sftp) page in your account. - **Test users** can only submit claims with `ISA-15 = T` (test data) and route to the test clearinghouse. - **Production users** can only submit claims with `ISA-15 = P` (production data) and route to the production clearinghouse. 2. Connect to Stedi's server and drop X12 EDI files into the `to-stedi` directory. 3. Stedi automatically validates the data and determines whether each file contains a test or a production transaction. 4. Stedi routes your transactions to the appropriate clearinghouse and places responses into the `from-stedi` directory in X12 EDI format. You can retrieve these responses from the directory at your preferred cadence without calling Stedi APIs. Stedi shows all claims and claim responses sent through the SFTP connection on the [claims view](/healthcare/claims-view) in the Stedi portal. This allows you to review your claim submissions, quickly find related responses, and download transaction data. ## Next steps [#next-steps] Visit [SFTP setup](/healthcare/submit-claims-sftp-setup) to create SFTP users and connect to Stedi's server. # Retrieve claim responses Source: https://www.stedi.com/docs/healthcare/submit-claims-sftp-retrieve-responses After submitting claims through SFTP, you can retrieve claim responses at your preferred cadence from the `from-stedi` directory. You can optionally set up event destinations to get real-time notifications when new responses are available. ## Set up event destinations (optional) [#set-up-event-destinations-optional] Event destinations send real-time notifications to your endpoint when Stedi processes claims, attachments, and responses. You can [configure event destinations](/healthcare/event-destinations-configure) to monitor your claims pipeline and receive instant alerts when issues occur. ### Recommended event types [#recommended-event-types] When creating an event destination for SFTP submission, subscribe to the following event types. Event destinations use [thin events](/healthcare/event-destinations-event-types#event-payload) - they notify you that a resource changed and include resource IDs, but not the full resource data. {/* prettier-ignore-start */} | Event type | Description | | ---------- | ----------- | | **transaction.processed** (strongly recommended for 999s) | Emitted when Stedi processes any transaction, including 999 Implementation Acknowledgments, 277CA claim acknowledgments, and 835 Electronic Remittance Advice (ERA). The event includes the transaction type in `relatedResources[].type` (for example, `transaction.x12.999`, `transaction.x12.277`, or `transaction.x12.835`).
  • We strongly recommend monitoring for 999s to receive instant notifications when Stedi rejects one or more transactions. Learn more about [monitoring for 999 rejections](#monitor-for-999-rejections-strongly-recommended).
  • You can also monitor for 277CAs and 835 ERAs to receive real-time notifications when payer responses are available in the `from-stedi` directory.
| | **file.failed** (recommended) | Emitted only when Stedi can't read a file as EDI at all, such as a missing envelope or a file that isn't EDI. This is rare, since most malformed files get a TA1 or 999 rejection instead. When you receive a `file.failed` event, treat the submission as failed, fix any errors in the file, and resubmit. | | **file.processed** (optional) | Emitted when Stedi successfully processes a file, both for the claims you submit and the responses Stedi receives. This doesn't indicate whether Stedi delivered the file to the payer, or whether the payer accepted or rejected the claim. | {/* prettier-ignore-end */} The following example shows a `transaction.processed` event for a 999. The `relatedResources[].type` value of `transaction.x12.999` indicates this is a 999 Implementation Acknowledgment. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction" }, "relatedResources": [ { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "transaction.x12.999" }, { "id": "01997873-bebb-7b33-81ef-f408866dfb2c", "type": "execution" } ], "type": "transaction.processed" } ``` The following example shows a `file.failed` event. ```json { "account": "11111111-2222-3333-4444-555555555555", "created": "2026-03-30T23:19:00.501Z", "environment": "PRODUCTION", "id": "evt_a81659f1-16a5-9bec-03e1-0ba8ab5e9652", "object": "v1.event", "resource": { "id": "019bb508-dc63-73a1-8ddc-9d4720299072", "type": "execution" }, "type": "file.failed" } ``` ## Retrieve claim responses [#retrieve-claim-responses] You can retrieve claim responses at your preferred cadence from the `from-stedi` directory. These responses are in X12 EDI format. - You'll first receive a 999 Implementation Acknowledgment from Stedi if any transaction in your submission was rejected (including partial rejections). We emit 999s for both claim and claim attachment submissions. We strongly recommend [monitoring 999s for rejections](#monitor-for-999-rejections-strongly-recommended). - Once Stedi accepts your claim, you may receive 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA) responses. X12 EDI specifications: [999](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) | [277](https://portal.stedi.com/app/guides/view/hipaa/claim-acknowledgment-x214/01HACJ4MNFWR3GV3BCVAMG04PK) | [835](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-paymentadvice-x221a1/01GRYB6DS30MGXWBPFZCM3695E) ### Monitor for 999 rejections (strongly recommended) [#monitor-for-999-rejections-strongly-recommended] When claim or attachment transactions fail Stedi's validation, Stedi returns a [999 Implementation Acknowledgment](https://portal.stedi.com/app/guides/view/hipaa/implementation-acknowledgment-x231a1/01HMRQV0N8SPHG58M4ZG1CRHH0) within minutes of the file submission. The 999 indicates that at least one transaction in the file was rejected for processing. Other transactions in the same file may still be accepted and sent to the payer. We strongly recommend monitoring the `from-stedi` directory for these error 999s that indicate rejections. Otherwise, your claim and attachment submissions may silently fail because Stedi doesn't send rejected transactions to the payer. By default, you'll only receive 999s when Stedi rejects one or more transactions in a functional group. You can opt in to receive 999s for fully accepted functional groups as well. To update your 999 settings in the Stedi portal: 1. Go to the [SFTP setup page](https://portal.stedi.com/app/settings/developer/sftp) in your account settings. 2. Under **999 settings**, select **All 999s**. A 999 doesn't indicate whether the payer accepted or rejected your claim. For that information, check the [277CA claim acknowledgment](/healthcare/submit-claims-sftp-retrieve-responses#277ca-claim-acknowledgment) response from the payer. #### Interpret 999s [#interpret-999s] Check `AK901` (Functional Group Acknowledge Code). The 999 will contain one `AK901` element for each functional group in the file. - **Receipt acknowledgment 999:** `AK901` is set to `A` for Accepted. Stedi accepted all transactions in the functional group for processing and sent them to the payer. - **Error 999:** `AK901` is set to either `R` for Rejected or `P` for Partially Accepted. Stedi rejected at least one transaction in the functional group due to X12 EDI validation errors. For each transaction, the 999 will include `Loop 2000` (Transaction Set Response Header). Within that loop, check `IK501` (Transaction Set Acknowledgment Code). - Accepted transactions have `IK501` set to `A`. Stedi sends accepted transactions to the payer, so you only need to correct and resubmit the rejected ones. - Rejected transactions have `IK501` set to `R`. For rejected transactions, Stedi lists the validation errors in `Loop 2100` (Error Identification). You must correct the errors and resubmit. **Examples** `AK901` (Functional Group Acknowledge Code) is set to `R` if all transactions were rejected, or `P` if the group was partially accepted: ``` AK9*P*3*3*1~ ← Partially accepted: 3 transactions submitted, 3 received, 1 accepted (2 rejected) ``` For each rejected transaction, `IK501` (Transaction Set Acknowledgment Code) is set to `R`. The `IK3` (Error Identification) and `IK4` (Implementation Data Element Note) segments identify where the error occurred. For example: ``` AK2*837*0002~ ← Responding to transaction 0002 IK3*CLM*22**8~ ← CLM segment at position 22 has element errors IK4*2*782*1~ ← Element 2 is missing a mandatory value IK5*R*5~ ← Transaction rejected ``` ### 277CA claim acknowledgment [#277ca-claim-acknowledgment] The 277CA indicates whether a claim was accepted for processing or rejected due to correctable errors, such as invalid data, missing information, or failure to comply with payer-specific rules. A rejection is different from a denial. Claims are denied during adjudication, so you'll only see denial statuses in the 835 Electronic Remittance Advice (ERA). A 277CA rejection indicates that the claim never made it to the adjudication step. In these cases, the 277CA will include error codes and descriptions to help you correct the issues before resubmitting the claim. You may receive multiple 277CAs for each claim you submit. You should monitor these 277CAs to track the claim's status as it moves through Stedi and the payer's systems: - **Clearinghouse:** You'll receive the first 277CA from Stedi within about 30 minutes of submitting the claim to indicate whether we have accepted or rejected it. You may receive additional 277CAs as we route the claim to the payer. - **Payer:** You may receive one or more 277CAs from the payer. Typically, there is one 277CA that indicates receipt of the claim and a second 277CA that contains summary counts of transactions received, information about accepted transactions, and details for rejected transactions. Each 277CA typically correlates to one 837 claim. However: - Some payers may send a single 277CA that [references multiple claims](/healthcare/receive-claim-responses#correlate-277ca). - Payers sometimes split a single claim into multiple claims during processing. In these cases, you may receive multiple 277CAs from the payer for the original claim you submitted. - Payers may send another 277CA when they forward a claim to a secondary payer in a coordination of benefits scenario. - (SFTP only) When you submit a [bulk claim](/healthcare/submit-claims-sftp-connection#bulk-claims), you'll typically receive one 277CA per claim. For example, if you submit a bulk transaction containing information for 10 claims, you'll typically receive 10 separate 277CAs. #### Determine sender [#determine-sender] To determine whether a 277CA is from a clearinghouse or the payer, check `Loop 2100A NM103` (Information Source Name). You can also find this information in the Stedi portal: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Find the associated claim and click it to view the claim timeline. 3. Find the 277CA in the timeline view. The **From** field indicates whether the acknowledgment is from Stedi or the payer. ![277CA claim timeline](/images/providers/277CA-claim-timeline.png) #### 277CA vs. claim status check [#277ca-vs-claim-status-check] The 277CA contains different information than a real-time claim status check. Specifically: - **277CAs**: Tell you whether the payer has received a claim and accepted it for processing. If the claim was rejected, 277CAs tell you why so you can resubmit. They don't indicate whether the claim has been adjudicated or paid. - **Real-time claim status checks**: Tell you the status of a claim that's already been accepted into the payer's system. They provide information about whether the claim has been adjudicated, paid, denied, or is pending further review. That's why claim status checks can return more [Claim Status Category Codes](https://x12.org/codes/claim-status-category-codes) than a 277CA. Specifically, they can return codes in the `P` range for pending claims and codes in the `F` range for final claim statuses. If you're waiting for an ERA, you should first check the related 277CA to confirm that the claim was accepted for processing. If the claim was rejected, you won't receive an ERA because the payer didn't adjudicate the claim. Then, you can run a real-time claim status check to get updates about the claim's adjudication and payment status. ### 835 Electronic Remittance Advice (ERA) [#835-electronic-remittance-advice-era] Processing ERAs always requires [transaction enrollment](/healthcare/transaction-enrollment) with the payer. The ERA contains details about payments for specific services and explanations for any adjustments or denials. The payer only sends ERAs for claims they have accepted for adjudication. If a claim is rejected in a 277CA, there's no adjudication or payment information to report. #### Duplicate ERAs [#duplicate-eras] Payers typically send one ERA per claim. However, they may occasionally retransmit identical 835 ERAs. In rare cases, payers may also send multiple different ERAs for the same claim. You should have logic in place to handle both scenarios. You can identify identical ERAs by comparing the Check or EFT Trace Number. Check `TRN02` (Check or EFT Trace Number) in the `TRN` (Reassociation Trace Number) segment. ### Configure file names [#configure-file-names] You can configure how Stedi names the files you receive in the `from-stedi` directory. Go to the [SFTP setup page](https://portal.stedi.com/app/settings/developer/sftp) in your account settings and select your preferred **File naming** option: Semantic or UUID only. #### Semantic [#semantic] Semantic filenames include a timestamp, a UUID, and a semantic identifier in the format `{TIMESTAMP}_{UUID}_{SEMANTIC_IDENTIFIER}.x12`. For example: `20260416124500_f9591145-8343-4bd8-a338-5bcca8ac3baf_999.x12`. - **Timestamp:** The UTC timestamp when Stedi processed the file, in YYYYMMDDHHMMSS format. For example: `20260416124500`. - **UUID:** Stedi's internally generated 36-character identifier for the file. For example: `f9591145-8343-4bd8-a338-5bcca8ac3baf`. - **Semantic identifier:** Stedi's standardized transaction identifier. | X12 Transaction Set | Semantic Identifier | | --------------------------------- | ------------------- | | TA1 Interchange Acknowledgement | TA1 | | 999 Implementation Acknowledgment | 999 | | 277CA claim acknowledgment | 277CA | | 835 Electronic Remittance Advice | 835 | #### UUID only (legacy) [#uuid-only-legacy] Filenames only include a unique identifier in the format `{UUID}.x12`. For example: `f9591145-8343-4bd8-a338-5bcca8ac3baf.x12`. ### Delimiter normalization [#delimiter-normalization] Stedi reserves certain characters for delimiters in X12 EDI transactions. When these delimiter characters appear within data values - meaning they're used as content and not as actual delimiters, such as within a subscriber's name - Stedi replaces them to prevent parsing issues. Stedi normalizes delimiters within transaction data as follows: | Character found in data | Replacement | Stedi's reserved delimiter type it conflicts with | | ----------------------- | ----------- | ------------------------------------------------- | | `*` | `\|` | Element separator | | `^` | `\|` | Repetition separator | | `` ` `` | `'` | Component element separator | | `~` | `\|` | Segment terminator | **Examples:** - `O*CONNOR` becomes `O|CONNOR` - `CODE^01` becomes `CODE|01` - ``O`CONNOR`` becomes `O'CONNOR` - `MSG~HELLO` becomes `MSG|HELLO` If you parse raw X12 EDI responses, ensure your parser reads delimiters from the `ISA` segment instead of assuming fixed delimiters. ## Correlate responses with claim [#correlate-responses-with-claim] You can use the following identifiers from the original claim to correlate the 277CA and 835 ERA responses. ### Entire claim [#entire-claim] Use the following identifiers to correlate responses with the original 837 claim. **999s** Use `AK102` (Group Control Number). It contains the same value you supplied in the claim's `GS06` (Group Control Number). This is why we recommend using a unique value in `GS06` for each claim. **277CAs and 835 ERAs** Use `Loop 2300 CLM01` (Patient Control Number) from the original claim, if provided. - In the 277CA, this number is returned as `Loop 2200D TRN02` (Patient Control Number). Some payers batch acknowledgments for multiple claims into a single 277CA. This is more likely if you submitted multiple claims within a single 837 claim envelope. In these cases, the 277CA contains multiple iterations of `Loop 2200D` (Claim Status Tracking Number). Use each `TRN02` (Patient Control Number) value in the 277CA to correlate it with the original claim. - In the 835 ERA, this number is returned as `Loop 2100 CLP01` (Patient Control Number). ### Specific service lines [#specific-service-lines] Use the following identifiers to correlate specific service lines in claim responses with services lines from original 837 claim. **277CAs and 835 ERAs** Use `Loop 2400 REF02` (Line Item Control Number) from the original claim, if provided. - In the 277CA, this number is sometimes returned as `Loop 2220D REF02` (Line Item Control Number), but not always. This is because a 277CA only contains `Loop 2220D` (Service Line Information) when the claim was rejected because of issues with the information provided for the service line. - In the 835 ERA, this number is returned as `Loop 2110 REF02` (Line Item Control Number). # SFTP setup Source: https://www.stedi.com/docs/healthcare/submit-claims-sftp-setup Before you can submit claims and unsolicited attachments through SFTP, you need to create SFTP users and connect to Stedi's server. ## Create SFTP users [#create-sftp-users] Go to the [SFTP setup](https://portal.stedi.com/app/settings/developer/sftp) page in your account settings to create SFTP users. You can create either test or production users. - Test users can only send claims with the Usage Indicator Code set to `T` (test). They're a great way to safely send test claims without worrying about sending real claim data to payers. - Production users can only send claims with the Usage Indicator Code set to `P` (production). Stedi sends these claims to the payer through our production clearinghouse. ## Connect to Stedi's server [#connect-to-stedis-server] Use your user credentials to connect to Stedi's SFTP server at `transfer.us.stedi.com` using Port 22. ### Static IPs [#static-ips] You can use these static IP addresses to allowlist Stedi's server: `18.119.51.218` and `18.206.132.233` # Submit dental claims - Manual Source: https://www.stedi.com/docs/healthcare/submit-dental-claims-ui You can submit dental claims manually in X12 EDI format through the Stedi portal. Manual claim submission is useful for testing, QA, and debugging your pipeline. You can also submit claims through the [API](/healthcare/submit-dental-claims) or [SFTP](/healthcare/submit-claims-sftp-connection). Once you send a claim, Stedi automatically receives and processes 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA) responses. Dental payers typically require attachments to support most claims. Stedi's support for unsolicited 275 claim attachments is currently limited to a subset of available dental payers. [Learn more](#275-claim-attachments). ## Before sending claims [#before-sending-claims] You may need to complete the following steps before sending claims. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 837 claims through a new clearinghouse. You can check whether a specific payer requires transaction enrollment for 837 claims in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the claim type. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim submission, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. #### Best practices [#best-practices] - Leverage [batch enrollments](/healthcare/create-manage-transaction-enrollments#bulk-csv-import) when onboarding new provider groups or many providers at a time. - For ERAs, you can only be enrolled through one clearinghouse at a time per payer per provider. When your ERA enrollment is accepted through Stedi, you'll stop receiving ERAs through the previous clearinghouse. Every other transaction type accepts enrollment through more than one clearinghouse. ### Coordination of benefits check [#coordination-of-benefits-check] We recommend running a coordination of benefits (COB) check to ensure you submit claims to the correct payer. COB checks can help you determine: - If a patient is covered by more than one health plan - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for more information. ## Testing [#testing] The best way to test dental claims is by submitting them in test mode through the Stedi portal. To submit test claims through the Stedi portal: 1. Click your account name in the side navigation and toggle **Test mode** to **ON**. 2. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click **Submit claim**. 3. Choose **Upload raw X12 file** from the dropdown. When you send a test claim, Stedi doesn't send it to the payer. Instead, we apply our full suite of [edits and repairs](/healthcare/claim-edits-and-repairs) and return a 277CA claim acknowledgment indicating whether the claim was successfully processed. Visit [Test claims workflow](/healthcare/test-claims-workflow) to learn more about testing in the Stedi portal. ## Submit dental claims [#submit-dental-claims] You can submit dental claims by uploading an X12 EDI file to the Stedi portal. ### X12 EDI upload [#x12-edi-upload] Your X12 EDI claim data must adhere to the [837 Claim: Dental (X224A2)](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-dental-x224a2/01JCJZ46AEK835RYV1BXQNBPK8) specification. To manually submit an X12 EDI claim: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Click **Submit claim** and select **Upload raw X12 file**. 3. Do one of the following: - Click **Upload X12 EDI** and select an existing `.edi` file. - Select the transaction type and then paste the X12 EDI content into the text area. You can submit multiple claims in a single file, as long as all claims are 837s of the same type and X12 version. Visit [Bulk claims](#bulk-claims) for details. 4. Set `ISA15` (Interchange Usage Indicator) to `T` (Test Data) or `P` (Production Data), accordingly. Production claims are sent to payers. Test claims aren't sent to payers - Stedi's test clearinghouse processes them and returns test 277CA acknowledgments so you can evaluate your claim processing pipeline. 5. Fix any X12 EDI validation errors that appear after adding the claim content. Stedi highlights errors in red and displays the specification for the claim type you selected on the right side of the screen to make it easier to identify and fix issues. These validations ensure your claim data conforms to the HIPAA specification. Stedi runs additional claim edits on your claim data after submission. 6. Click **Submit claim**. Stedi processes the claim and runs claim edits to identify errors that could lead to a payer rejection. If a claim fails one of Stedi's edits, you'll receive a 277CA claim acknowledgment from Stedi rejecting the claim immediately after submission. This can happen even when the X12 EDI editor showed no errors before submission. If the claim passes all of Stedi's edits, Stedi submits it to the payer. It will appear on the [claims view](https://portal.stedi.com/app/healthcare/claims) within a few minutes. #### Bulk claims [#bulk-claims] You can submit multiple claims in a single X12 EDI file, as long as they are all the same claim type (professional, institutional, or dental) and X12 version. You can submit multiple claims in the same 837 transaction by including multiple instances of the following loops: - `Loop 2000A` (Billing provider) - `Loop 2000B` (Subscriber) - `Loop 2300` (Claim Information) - You can submit up to 1,000 claim loops in each 837 transaction After submission, Stedi separates your bulk 837 transaction into individual claims and sends each claim separately to the payer. This includes multiple claims going to the same payer - all claims within a bulk submission are sent individually to maintain consistency. The following example would produce 12 separate claims (2 x 3 x 2 = 12), each shown individually on the [claims view](https://portal.stedi.com/app/healthcare/claims): - 837 transaction contains information for two billing providers (2x `Loop 2000A`) - Each billing provider has three subscribers (3x `Loop 2000B`) - Each subscriber has two claims (2x `Loop 2300`) Then, you'll typically receive separate 277CA claim acknowledgments for each claim. Each claim will also receive its own test ERA from Stedi's test clearinghouse if the payer was `STEDITEST`. ### 275 claim attachments [#275-claim-attachments] Dental payers typically require attachments to support most claims, such as X-rays and treatment plans. If the claim requires attachments, you must include the `PWK` (Claim Supplemental Information) segment in `Loop 2300` to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`. Visit [Claim attachments](/healthcare/submit-claim-attachments) to learn more. ## View submitted claims [#view-submitted-claims] In the [claims view](https://portal.stedi.com/app/healthcare/claims), you can review and filter every claim in your account. Toggle test mode to **ON** to review test claims. Click any claim to review its details. # Submit dental claims - API Source: https://www.stedi.com/docs/healthcare/submit-dental-claims You can submit 837D dental claims programmatically through Stedi using JSON or X12 EDI. You can also submit claims [manually through the Stedi portal](/healthcare/submit-dental-claims-ui) or through [SFTP](/healthcare/submit-claims-sftp-connection). Once you send a claim, Stedi automatically receives and processes 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA) responses. Dental payers typically require attachments to support most claims. Stedi's support for unsolicited 275 claim attachments is currently limited to a subset of available dental payers. [Learn more](#275-claim-attachments). ## Before sending claims [#before-sending-claims] You may need to complete the following steps before sending claims. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 837 claims through a new clearinghouse. You can check whether a specific payer requires transaction enrollment for 837 claims in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the claim type. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim submission, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. #### Best practices [#best-practices] - Leverage [batch enrollments](/healthcare/create-manage-transaction-enrollments#bulk-csv-import) when onboarding new provider groups or many providers at a time. - For ERAs, you can only be enrolled through one clearinghouse at a time per payer per provider. When your ERA enrollment is accepted through Stedi, you'll stop receiving ERAs through the previous clearinghouse. Every other transaction type accepts enrollment through more than one clearinghouse. ### Coordination of benefits check [#coordination-of-benefits-check] We recommend running a coordination of benefits (COB) check to ensure you submit claims to the correct payer. COB checks can help you determine: - If a patient is covered by more than one health plan - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for more information. ## Testing [#testing] Stedi sends all API claim submissions as production claims unless you explicitly designate them as test data. To submit test claims: - **837D JSON endpoint:** Set the `usageIndicator` property in the test claim body to `T`. - **837D Raw X12 endpoint:** Use a production API key and set `ISA15` (Interchange Usage Indicator) to `T` (Test Data) instead of `P` (Production Data). Visit [Test claims workflow](/healthcare/test-claims-workflow) for complete instructions and information about autogenerated test responses. ## Submit dental claims [#submit-dental-claims] Call one of the following endpoints to submit 837D dental claims. The 837D JSON endpoint translates your request to X12 837 EDI format before sending to the payer. Both endpoints return a synchronous response from Stedi in JSON format, and the payer later responds with a 277CA claim acknowledgment. {/* prettier-ignore-start */} | Endpoint | Description and when to use | | -------- | ----------- | | [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims) | Uses an X12-based JSON structure that maps directly to the 837D transaction. Use cases:
  • Submit standard dental claims programmatically.
  • Submit complex dental claims with attachments and detailed tooth information.
| | [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12) | Accepts raw X12 837D EDI format. Use cases:
  • You already have X12 claim data from another system.
  • You need complete control over every X12 segment and element.
| {/* prettier-ignore-end */} ### Headers [#headers] When constructing the request, you must include the following information in HTTP headers: - **`Authorization`:** [Generate an API key](https://portal.stedi.com/app/settings/developer/api-keys) to use for authentication. Use a test API key when submitting test claims. - **`Content-Type`:** Set to `application/json`. #### Idempotency key [#idempotency-key] We **strongly recommend** including an [idempotency key](/healthcare/api-reference#idempotency-keys) in the `Idempotency-Key` header to prevent sending duplicate claims to payers in the case of network errors or other intermittent failures. You can safely retry requests with the same idempotency key as many times as necessary within 24 hours after making the first request. ### Body - JSON [#body---json] The information you submit for a claim depends on your use case. Refer to the [Dental Claims](/healthcare/api-reference/post-healthcare-dental-claims) endpoint for a complete list of properties. However, all claims require the following high-level information: {/* prettier-ignore-start */} | Information | Description | | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [`tradingPartnerServiceId`](/healthcare/api-reference/post-healthcare-claims#body.tradingPartnerServiceId) | This is the payer ID. You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. If you don't already have payer IDs you use today, we recommend using the primary Payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. | | [`tradingPartnerName`](/healthcare/api-reference/post-healthcare-claims#body.tradingPartnerName) | This is the payer's business name, like Cigna or Aetna. | | [`submitter`](/healthcare/api-reference/post-healthcare-claims#body.submitter) object | Information about the entity submitting the claim. This can be either an individual or an organization, such as a doctor, hospital, or insurance company. | | [`receiver`](/healthcare/api-reference/post-healthcare-claims#body.receiver) object | Information about the payer, such as an insurance company or government agency. | | [`subscriber`](/healthcare/api-reference/post-healthcare-claims#body.subscriber) and, or [`dependent`](/healthcare/api-reference/post-healthcare-claims#body.dependent) objects | Information about the patient who received the medical services. Note that if a dependent has their own, unique member ID for their health plan, you must submit their information in the `subscriber` object and omit the `dependent` object from the request. You can check whether the dependent has a unique member ID by submitting an [Eligibility Check](/healthcare/api-reference/post-eligibility-check) to the payer for the dependent. The payer returns the member ID in the `dependents.memberId` field, if present. | | [`claimInformation`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation) object | Information about the claim, such as the [patient control number](#patient-control-number), claim charge amount, and place of service code. It also includes information about each individual service line included in the claim. | | [`billing`](/healthcare/api-reference/post-healthcare-claims#body.billing) object | Information about the billing provider, such as the [NPI](/healthcare/national-provider-identifier), taxonomy code, and organization name. | {/* prettier-ignore-end */} #### Patient Control Number [#patient-control-number] You must submit a Patient Control Number (PCN) with each claim in [`claimInformation.patientControlNumber`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.patientControlNumber). The payer returns this value in related transactions, such as the 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA), so you can correlate responses and real-time claim status checks with the original claim. When assigning a PCN, follow these best practices: - Use a unique PCN for each claim. The identifier should be more complex than a simple sequential number and should be hard to guess. - Use random strings. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters available in the [basic character set](#character-set) to create a strong, unique 17-character PCN for each claim. - Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](#character-restrictions), and avoid special characters that are only available in the extended character set. Payers are permitted to return data using the basic character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - Treat PCN values as case-insensitive when matching transactions, even if the submitted value included both lower and uppercase characters. #### Service line identification [#service-line-identification] A claim can contain multiple service lines. Since the payer may accept, reject, or pay a subset of those lines, you can receive an 835 ERA that references a `patientControlNumber`, but only pertains to some of the service lines. However, the `claimInformation.serviceLines[].providerControlNumber` serves as a unique identifier for each service line in your claim submission. This value appears in the 277CA claim acknowledgment and 835 ERA as the `lineItemControlNumber`, allowing you to correlate these responses to specific service lines from the original claim. If you don't set the `providerControlNumber` for a service line, Stedi uses a random UUID. Stedi returns service line identifiers in the `claimReference.serviceLines` array of the synchronous API response. #### Conditional requirements [#conditional-requirements] Note that objects marked as **required** are required for all requests, while others are conditionally required depending on the circumstances. When you include a conditionally required object, you must include all of its required properties. For example, you must always include the `subscriber` object in your request, but you only need to include the `supervising` object when a physician supervises the rendering provider. #### 275 claim attachments [#275-claim-attachments] If the claim requires attachments, you must include additional details about the attachments in the [`claimInformation.claimSupplementalInformation.reportInformation`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimSupplementalInformation.reportInformation) object or [`claimInformation.claimSupplementalInformation.reportInformations`](/healthcare/api-reference/post-healthcare-dental-claims#body.claimInformation.claimSupplementalInformation.reportInformations) array (multiple attachments). Visit [Claim attachments](/healthcare/submit-claim-attachments) for complete instructions. ### Body - X12 EDI [#body---x12-edi] You must send a payload in [837 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-dental-x224a3/01GRYB6G91ZX6R1XAFGBMRTBBW). Note the following requirements and behavior when sending dental claims through the raw X12 endpoint. #### Envelope and header [#envelope-and-header] Stedi generates its own `ISA` and `GS` headers and `IEA` and `GE` trailers before sending your claim to the payer. You can submit your claim to Stedi with any values in these segments, as long as they conform to the X12 EDI specification. However, you must set `ST03` (Implementation Guide Version Name) to `005010X224A2`. #### Payer ID [#payer-id] You must submit a payer identifier in `Loop 2010BB` (Payer Name) `NM109` so Stedi can route your claim to the correct payer. This identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). If you don't already have payer IDs you use today, we recommend using the primary Payer ID. You must include leading `0` characters in payer IDs. For example, use `00540` for SISCO, not `540`. #### `CLM01` (Patient Control Number) [#clm01-patient-control-number] We **strongly recommend** submitting a unique value for `Loop 2300` (Claim Information) `CLM01` (Patient Control Number). The payer returns this value in related transactions, such as the 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA), so you can correlate responses and real-time claim status checks with the original claim. When assigning a PCN, follow these best practices: - Use a unique PCN for each claim. The identifier should be more complex than a simple sequential number and should be hard to guess. - Use random strings. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters available in the [basic character set](#character-set) to create a strong, unique 17-character PCN for each claim. - Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](#character-restrictions), and avoid special characters that are only available in the extended character set. Payers are permitted to return data using the basic character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - Treat PCN values as case-insensitive when matching transactions, even if the submitted value included both lower and uppercase characters. #### Claim identifier [#claim-identifier] `Loop 2300 REF02` (Claim Identifier for Transmission Intermediaries) has different usage rules depending on your role: - **Providers:** Don't include `Loop 2300 REF02` when `REF01` = `D9` in your claim submission. It's reserved for clearinghouses and intermediaries. You can use `Loop 2300 CLM01` (Patient Control Number) to correlate claims with responses instead. - **Clearinghouses and intermediaries:** You can optionally include `REF*D9` in your 837 submissions. Stedi always returns this value in `Loop 2200D REF*D9` of 277CA claim acknowledgments, allowing you to match these responses to the claim. #### Service line identification [#service-line-identification-1] A claim can contain multiple service lines. Since the payer may accept, reject, or pay a subset of those lines, you can receive an 835 response that references a patient control number, but only pertains to some of the service lines. However, the line item control number serves as a unique identifier for each service line in your claim submission. - You can set the line item control number in `Loop 2400 REF02`, when `REF01` = `6R`. The line item control number appears in the 277CA and 835 ERA responses as the `lineItemControlNumber`, allowing you to correlate these responses to specific service lines from the original claim. - If you don't set the line item control number for a service line, Stedi uses a ULID. #### 275 claim attachments [#275-claim-attachments-1] If the claim requires attachments, you must include the `PWK` (Claim Supplemental Information) segment in `Loop 2300` to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`. Visit [Claim attachments](/healthcare/submit-claim-attachments) for complete instructions. ### Character restrictions [#character-restrictions] Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause errors. The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included. The following special characters are included: ![Basic special characters](/images/basic-special-characters.png) The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`. The following additional special characters are included: ![Extended special characters](/images/extended-special-characters-healthcare.png) In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, `^`, and `>`. X12 doesn't support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly. - **837D JSON endpoint:** Don't include delimiter characters anywhere in your request data. - **837D Raw X12 endpoint:** You can use these characters as delimiters, but not in the body of the request data. ### Sample request and response [#sample-request-and-response] The following examples send a dental claim. The response shape is the same for both the 837D JSON and 837D Raw X12 endpoints. It contains summary information from Stedi about the claim submission and whether it was successful. The response also includes an initial [277CA claim acknowledgment](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) from Stedi in the `x12` property, which indicates whether the claim passed Stedi's claim edits. {/* schema:DentalClaimsSubmissionRequestContent */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: ' \ --data '{ "usageIndicator": "T", "tradingPartnerServiceId": "52133", "tradingPartnerName": "United HealthCare Dental", "subscriber": { "paymentResponsibilityLevelCode": "P", "memberId": "123412345", "firstName": "John", "lastName": "Doe", "groupNumber": "1234567890", "gender": "F", "address": { "address1": "1234 Some St", "city": "Buckeye", "state": "AZ", "postalCode": "85326" }, "dateOfBirth": "20180615" }, "submitter": { "organizationName": "ABA Inc", "submitterIdentification": "", "contactInformation": { "phoneNumber": "3131234567", "name": "BILLING DEPARTMENT" } }, "rendering": { "npi": "1999999992", "taxonomyCode": "106S00000X", "providerType": "RenderingProvider", "lastName": "Doe", "firstName": "Jane" }, "receiver": { "organizationName": "United HealthCare Dental" }, "payerAddress": { "address1": "PO Box 7000", "city": "Camden", "state": "SC", "postalCode": "29000" }, "claimInformation": { "signatureIndicator": "Y", "toothStatus": [ { "toothNumber": "3", "toothStatusCode": "E" } ], "serviceLines": [ { "serviceDate": "20230428", "renderingProvider": { "npi": "1999999992", "taxonomyCode": "122300000X", "lastName": "Doe", "firstName": "Jane" }, "providerControlNumber": "a0UDo000000dd2dMAA", "dentalService": { "procedureCode": "D7140", "lineItemChargeAmount": "832.00", "placeOfServiceCode": "12", "oralCavityDesignation": [ "1", "2" ], "prosthesisCrownOrInlayCode": "I", "procedureCount": 2, "compositeDiagnosisCodePointers": { "diagnosisCodePointers": [ "1" ] } }, "teethInformation": [ { "toothCode": "3", "toothSurfaceCodes": [ "M", "O" ] } ] } ], "serviceFacilityLocation": { "phoneNumber": "3131234567", "organizationName": "ABA Inc", "npi": "1999999992", "address": { "address1": "ABA Inc 123 Some St", "city": "Denver", "state": "CO", "postalCode": "802383100" } }, "releaseInformationCode": "Y", "planParticipationCode": "A", "placeOfServiceCode": "12", "patientControlNumber": "", "healthCareCodeInformation": [ { "diagnosisTypeCode": "ABK", "diagnosisCode": "K081" } ], "claimSupplementalInformation": { "priorAuthorizationNumber": "20231010012345678" }, "claimFrequencyCode": "1", "claimFilingCode": "FI", "claimChargeAmount": "832.00", "benefitsAssignmentCertificationIndicator": "Y" }, "billing": { "taxonomyCode": "106S00000X", "providerType": "BillingProvider", "organizationName": "ABA Inc", "npi": "1999999992", "employerId": "123456789", "contactInformation": { "phoneNumber": "3134893157", "name": "ABA Inc" }, "address": { "address1": "ABA Inc 123 Some St", "city": "Denver", "state": "CO", "postalCode": "802383000" } } }' ``` ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/dental-claims/raw-x12-submission \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: ' \ --data '{ "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2050*^*00501*000000042*0*T*`~GS*HC*574183004559*STEDITEST*20260213*205048*42*X*005010X224A2~ST*837*0001*005010X224A2~BHT*0019*00*01KHCCA4V6K00NFPX588G859SJ*20260213*2050*CH~NM1*41*2*ABA Inc*****46*1234567~PER*IC*BILLING DEPARTMENT*TE*3131234567~NM1*40*2*United HealthCare Dental*****46*52133~HL*1**20*1~PRV*BI*PXC*106S00000X~NM1*85*2*ABA Inc*****XX*1999999992~N3*ABA Inc 123 Some St~N4*Denver*CO*802383000~REF*EI*123456789~PER*IC*ABA Inc*TE*3134893157~HL*2*1*22*0~SBR*P*18*1234567890******FI~NM1*IL*1*Doe*John****MI*123412345~N3*1234 Some St~N4*Buckeye*AZ*85326~DMG*D8*20180615*F~NM1*PR*2*United HealthCare Dental*****PI*52133~N3*PO Box 7000~N4*Camden*SC*29000~CLM*12345*832***12`B`1*Y*A*Y*Y~DN2*3*E****JP~REF*G1*20231010012345678~HI*ABK`K081~NM1*82*1*Doe*Jane****XX*1999999992~PRV*PE*PXC*106S00000X~LX*1~SV3*AD`D7140*832**1`2*I*2*****1~TOO*JP*3*M`O~DTP*472*D8*20230428~REF*6R*a0UDo000000dd2dMAA~NM1*82*1*Doe*Jane****XX*1999999992~PRV*PE*PXC*122300000X~SE*35*0001~GE*1*42~IEA*1*000000042~" }' ``` {/* schema:DentalClaimsSubmissionResponseContent */} ```json { "status": "SUCCESS", "controlNumber": "1", "tradingPartnerServiceId": "52133", "claimReference": { "correlationId": "01KHC96GBNYA14YRBRJGFR13P7", "patientControlNumber": "12345", "timeOfResponse": "2026-02-13T19:56:13.575Z", "payerId": "52133", "formatVersion": "5010", "rhclaimNumber": "01KHC96GBNYA14YRBRJGFR13P7", "serviceLines": [ { "lineItemControlNumber": "a0UDo000000dd2dMAA" } ] }, "meta": { "traceId": "4564629a-930d-4287-aceb-ca9a1f1a2d7d" }, "payer": { "payerName": "United HealthCare Dental", "payerId": "52133" }, "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2045*^*00501*000000033*0*T*`~GS*HC*574183004559*STEDITEST*20260213*204524*33*X*005010X224A2~ST*837*0001*005010X224A2~BHT*0019*00*01KHC96GBNYA14YRBRJGFR13P7*20260213*1956*CH~NM1*41*2*ABA Inc*****46*123456789~PER*IC*BILLING DEPARTMENT*TE*3131234567~NM1*40*2*United HealthCare Dental*****46*52133~HL*1**20*1~PRV*BI*PXC*106S00000X~NM1*85*2*ABA Inc*****XX*1999999992~N3*ABA Inc 123 Some St~N4*Denver*CO*802383000~REF*EI*123456789~PER*IC*ABA Inc*TE*3134893157~HL*2*1*22*0~SBR*P*18*1234567890******FI~NM1*IL*1*Doe*John****MI*123412345~N3*1234 Some St~N4*Buckeye*AZ*85326~DMG*D8*20180615*F~NM1*PR*2*United HealthCare Dental*****PI*52133~N3*PO Box 7000~N4*Camden*SC*29000~CLM*12345*832***12`B`1*Y*A*Y*Y~DN2*3*E****JP~REF*G1*20231010012345678~HI*ABK`K081~NM1*82*1*Doe*Jane****XX*1999999992~PRV*PE*PXC*106S00000X~LX*1~SV3*AD`D7140*832**1`2*I*2*****1~TOO*JP*3*M`O~DTP*472*D8*20230428~REF*6R*a0UDo000000dd2dMAA~NM1*82*1*Doe*Jane****XX*1999999992~PRV*PE*PXC*122300000X~SE*35*0001~GE*1*33~IEA*1*000000033~", "httpStatusCode": "200 OK" } ``` ### Concurrency and rate limits [#concurrency-and-rate-limits] Dental claim submission endpoints share both a rate limit pool and a concurrency pool with other claim endpoints. For more information, visit [Limits](/healthcare/api-reference#limits). ### Recommended API clients [#recommended-api-clients] You may want to use an API client to make testing and debugging easier. We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead. ## View submitted claims [#view-submitted-claims] In the [claims view](https://portal.stedi.com/app/healthcare/claims), you can review and filter every claim in your account. Toggle **Test mode** in the side navigation to view test or production claims. Click any claim to review its details. ## Submit claims to a secondary or tertiary payer [#submit-claims-to-a-secondary-or-tertiary-payer] In [coordination of benefits (COB)](/healthcare/coordination-of-benefits) scenarios, you'll need to submit a claim to multiple payers. You must set the `subscriber.paymentResponsibilityLevelCode` to either `S` (when submitting to the secondary payer) or `T` (when submitting to the tertiary payer). You must also include the following information about how prior payers have adjudicated the claim. For example, if a patient's private insurance plan (primary payer) adjusted the requested reimbursement amount and paid for its portion of the services, you must include that information in the claim you submit to Medicare (secondary payer). You can find these details in 835 ERA responses from prior payers. ### Claim information [#claim-information] You must submit one object in the `claimInformation.otherSubscriberInformation` array for each prior payer. Supply all the required properties in the object plus the following additional information: - `claimLevelAdjustments`: Provide if the prior payer made adjustments at the claim level. Codes and their associated amounts must come from ERAs sent by the prior payers. You can find these codes in the ERA's [`transactions[].detailInfo[].paymentInfo[].claimAdjustments`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimAdjustments) array. - `medicareInpatientAdjudication` (institutional claims only): You must include this if Medicare was one of the prior payers and reported inpatient adjudication information on the ERA. - `medicareOutpatientAdjudication`: You must include this if Medicare was one of the prior payers and reported outpatient adjudication information on the ERA. - `otherPayerName.otherPayerAdjudicationOrPaymentDate`: The date the payer adjudicated or paid the claim. You must provide this if you aren't providing a value in the `claimInformation.serviceLines[].lineAdjudicationInformation[].adjudicationOrPaymentDate` property. - `payerPaidAmount`: This is the total amount in dollars the payer paid on this claim. ### Service line information [#service-line-information] You must submit `serviceLines[].lineAdjudicationInformation` objects when the prior payers provided line-level adjudication information. Submit one object for each prior payer. For each object, you should include the following properties. - `adjudicationOrPaymentDate`: The date the payer adjudicated or paid the claim. Don't include this if you're providing a date in the `otherPayerName.otherPayerAdjudicationOrPaymentDate` property. - `claimAdjustmentInformation`: You can find this information in the ERA's [`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.serviceLines.serviceAdjustments) array. - `otherPayerPrimaryIdentifier`: The identifier for the other payer. This value should match the identifier you supplied for the payer in the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - `procedureCode`: The adjudicated procedure code for the service line. - `serviceIdQualifier`: A code identify the type of procedure code. Visit [Claims code lists](/healthcare/claims-code-lists#composite-medical-procedure---product-or-service-id-qualifier-codes) for a complete list. - `serviceLinePaidAmount`: The total amount in dollars the prior payer paid on this service line. - `paidServiceUnitCount`: The number of paid units for the service line. When paid units are not present on the remittance advice, use the original billed units. - `remainingPatientLiability`: The amount of the service line the patient is responsible for paying. ## Claim Filing Indicator Code [#claim-filing-indicator-code] The Claim Filing Indicator Code indicates how you file a claim with a payer, such as `MC` (Medicaid) or `CI` (Commercial Insurance Co.). Choosing the correct claim filing indicator code is important for successful claim submission. Visit the [Claims code lists](/healthcare/claims-code-lists#choosing-the-right-code) documentation for best practices for selecting the appropriate code. # Submit institutional claims - Manual Source: https://www.stedi.com/docs/healthcare/submit-institutional-claims-ui You can submit institutional claims manually in X12 EDI format through the Stedi portal. Manual claim submission is useful for testing, QA, and debugging your pipeline. You can also submit claims through the [API](/healthcare/submit-institutional-claims), [SFTP](/healthcare/submit-claims-sftp-connection), or as [paper claims](/healthcare/submit-paper-claims). Once you send a claim, Stedi automatically receives and processes 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA) responses. ## Before sending claims [#before-sending-claims] You may need to complete the following steps before sending claims. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 837 claims through a new clearinghouse. You can check whether a specific payer requires transaction enrollment for 837 claims in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the claim type. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim submission, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. #### Best practices [#best-practices] - Leverage [batch enrollments](/healthcare/create-manage-transaction-enrollments#bulk-csv-import) when onboarding new provider groups or many providers at a time. - For ERAs, you can only be enrolled through one clearinghouse at a time per payer per provider. When your ERA enrollment is accepted through Stedi, you'll stop receiving ERAs through the previous clearinghouse. Every other transaction type accepts enrollment through more than one clearinghouse. ### Coordination of benefits check [#coordination-of-benefits-check] We recommend running a coordination of benefits (COB) check to ensure you submit claims to the correct payer. COB checks can help you determine: - If a patient is covered by more than one health plan - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for more information. ## Testing [#testing] The best way to test institutional claims is by submitting them in test mode through the Stedi portal. To submit test claims through the Stedi portal: 1. Click your account name in the side navigation and toggle **Test mode** to **ON**. 2. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click **Submit claim**. 3. Choose **Upload raw X12 file** from the dropdown. When you send a test claim, Stedi doesn't send it to the payer. Instead, we apply our full suite of [edits and repairs](/healthcare/claim-edits-and-repairs) and return a 277CA claim acknowledgment indicating whether the claim was successfully processed. Visit [Test claims workflow](/healthcare/test-claims-workflow) to learn more about testing in the Stedi portal. ## Submit institutional claims [#submit-institutional-claims] You can submit institutional claims by uploading an X12 EDI file to the Stedi portal. ### X12 EDI upload [#x12-edi-upload] Your X12 EDI claim data must adhere to the [837 Claim: Institutional (X223A2)](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-institutional-x223a2/01JBHW2YXMN2F9KXK2PS0BFP9F) specification. To manually submit an X12 EDI claim: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Click **Submit claim** and select **Upload raw X12 file**. 3. Do one of the following: - Click **Upload X12 EDI** and select an existing `.edi` file. - Select the transaction type and then paste the X12 EDI content into the text area. You can submit multiple claims in a single file, as long as all claims are 837s of the same type and X12 version. Visit [Bulk claims](#bulk-claims) for details. 4. Set `ISA15` (Interchange Usage Indicator) to `T` (Test Data) or `P` (Production Data), accordingly. Production claims are sent to payers. Test claims aren't sent to payers - Stedi's test clearinghouse processes them and returns test 277CA acknowledgments so you can evaluate your claim processing pipeline. 5. Fix any X12 EDI validation errors that appear after adding the claim content. Stedi highlights errors in red and displays the specification for the claim type you selected on the right side of the screen to make it easier to identify and fix issues. These validations ensure your claim data conforms to the HIPAA specification. Stedi runs additional claim edits on your claim data after submission. 6. Click **Submit claim**. Stedi processes the claim and runs claim edits to identify errors that could lead to a payer rejection. If a claim fails one of Stedi's edits, you'll receive a 277CA claim acknowledgment from Stedi rejecting the claim immediately after submission. This can happen even when the X12 EDI editor showed no errors before submission. If the claim passes all of Stedi's edits, Stedi submits it to the payer. It will appear on the [claims view](https://portal.stedi.com/app/healthcare/claims) within a few minutes. #### Bulk claims [#bulk-claims] You can submit multiple claims in a single X12 EDI file, as long as they are all the same claim type (professional, institutional, or dental) and X12 version. You can submit multiple claims in the same 837 transaction by including multiple instances of the following loops: - `Loop 2000A` (Billing provider) - `Loop 2000B` (Subscriber) - `Loop 2300` (Claim Information) - You can submit up to 1,000 claim loops in each 837 transaction After submission, Stedi separates your bulk 837 transaction into individual claims and sends each claim separately to the payer. This includes multiple claims going to the same payer - all claims within a bulk submission are sent individually to maintain consistency. The following example would produce 12 separate claims (2 x 3 x 2 = 12), each shown individually on the [claims view](https://portal.stedi.com/app/healthcare/claims): - 837 transaction contains information for two billing providers (2x `Loop 2000A`) - Each billing provider has three subscribers (3x `Loop 2000B`) - Each subscriber has two claims (2x `Loop 2300`) Then, you'll typically receive separate 277CA claim acknowledgments for each claim. Each claim will also receive its own test ERA from Stedi's test clearinghouse if the payer was `STEDITEST`. ### 275 claim attachments [#275-claim-attachments] If the claim requires attachments, you must include the `PWK` (Claim Supplemental Information) segment in `Loop 2300` to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`. Visit [Claim attachments](/healthcare/submit-claim-attachments) to learn more. ## View submitted claims [#view-submitted-claims] In the [claims view](https://portal.stedi.com/app/healthcare/claims), you can review and filter every claim in your account. Toggle test mode to **ON** to review test claims. Click any claim to review its details. # Submit institutional claims - API Source: https://www.stedi.com/docs/healthcare/submit-institutional-claims You can submit 837I institutional claims programmatically through Stedi using JSON or X12 EDI. You can also submit claims [manually through the Stedi portal](/healthcare/submit-institutional-claims-ui), through [SFTP](/healthcare/submit-claims-sftp-connection), or as [paper claims](/healthcare/submit-paper-claims). Once you send a claim, Stedi automatically receives and processes 277CA claim acknowledgments and 835 Electronic Remittance Advice (ERA) responses. ## Before sending claims [#before-sending-claims] You may need to complete the following steps before sending claims. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 837 claims through a new clearinghouse. You can check whether a specific payer requires transaction enrollment for 837 claims in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the claim type. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim submission, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. #### Best practices [#best-practices] - Leverage [batch enrollments](/healthcare/create-manage-transaction-enrollments#bulk-csv-import) when onboarding new provider groups or many providers at a time. - For ERAs, you can only be enrolled through one clearinghouse at a time per payer per provider. When your ERA enrollment is accepted through Stedi, you'll stop receiving ERAs through the previous clearinghouse. Every other transaction type accepts enrollment through more than one clearinghouse. ### Coordination of benefits check [#coordination-of-benefits-check] We recommend running a coordination of benefits (COB) check to ensure you submit claims to the correct payer. COB checks can help you determine: - If a patient is covered by more than one health plan - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for more information. ## Testing [#testing] Stedi sends all API claim submissions as production claims unless you explicitly designate them as test data. Visit [Test claim workflows](/healthcare/test-claims-workflow) for complete instructions on sending test claims and receiving test responses. ## API submission [#api-submission] Call one of the following endpoints to submit 837I institutional claims. Both endpoints return a synchronous response from Stedi in JSON format. Later, the payer responds with a 277CA claim acknowledgment. {/* prettier-ignore-start */} | Endpoint | Description and when to use | | -------- | ----------- | | [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) | Uses an X12-based JSON structure that maps directly to the 837I transaction. Use cases:
  • Submit standard institutional claims programmatically.
  • Submit complex institutional claims with detailed billing and service information.
| | [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12) | Accepts raw X12 837I EDI format. Use cases:
  • You already have X12 claim data from another system.
  • You need complete control over every X12 segment and element.
| {/* prettier-ignore-end */} ### Headers [#headers] When constructing the request, you must include the following information in HTTP headers: - **`Authorization`:** [Generate an API key](https://portal.stedi.com/app/settings/developer/api-keys) to use for authentication. Use a test API key when submitting test claims. - **`Content-Type`:** Set to `application/json`. #### Idempotency key [#idempotency-key] We **strongly recommend** including an [idempotency key](/healthcare/api-reference#idempotency-keys) in the `Idempotency-Key` header to prevent sending duplicate claims to payers in the case of network errors or other intermittent failures. You can safely retry requests with the same idempotency key as many times as necessary within 24 hours after making the first request. ### Body - JSON [#body---json] The information you submit for a claim depends on your use case. Refer to the [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) endpoint for a complete list of properties. However, all claims require the following high-level information: {/* prettier-ignore-start */} |Information | Description| |------------|------------| | `tradingPartnerServiceId` | This is the payer ID. You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. If you don't already have payer IDs you use today, we recommend using the primary Payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. | | `submitter` object | Information about the entity submitting the claim. This is an organization, such as a hospital or other treatment center. | | `receiver` object | Information about the entity responsible for the payment of the claim, such as an insurance company or government agency. | | `subscriber` and/or `dependent` objects | Information about the patient who received the medical services. Note that if a dependent has their own, unique member ID for their health plan, you should submit their information in the `subscriber` object and omit the `dependent` object from the request. You can check whether the dependent has a unique member ID by submitting an [Eligibility Check](/healthcare/api-reference/post-healthcare-eligibility-legacy) to the payer for the dependent. The payer will return the member ID in the `dependents.memberId` field, if present. | | `claimInformation` object | Information about the claim, such as the [Patient Control Number](#patient-control-number-pcn), claim filing code (identifies the type of claim), claim charge amount, and place of service code. It also includes information about each individual service line included in the claim. | | Billing provider | You **must** supply information about the billing provider in either the `providers` or `billing` object. This includes the provider's [NPI](/healthcare/national-provider-identifier), name, and other information. | {/* prettier-ignore-end */} #### Patient Control Number [#patient-control-number] You must submit a Patient Control Number (PCN) with each claim in [`claimInformation.patientControlNumber`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.patientControlNumber). The payer returns this value in related transactions, such as the 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA), so you can correlate responses and real-time claim status checks with the original claim. When assigning a PCN, follow these best practices: - Use a unique PCN for each claim. The identifier should be more complex than a simple sequential number and should be hard to guess. - Use random strings. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters available in the [basic character set](#character-set) to create a strong, unique 17-character PCN for each claim. - Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](#character-restrictions), and avoid special characters that are only available in the extended character set. Payers are permitted to return data using the basic character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - Treat PCN values as case-insensitive when matching transactions, even if the submitted value included both lower and uppercase characters. #### Service line identification [#service-line-identification] A claim can contain multiple service lines. Since the payer may accept, reject, or pay a subset of those lines, you can receive an 835 ERA that references a `patientControlNumber`, but only pertains to some of the service lines. However, the `claimInformation.serviceLines[].lineItemControlNumber` serves as a unique identifier for each service line in your claim submission. This value appears in the 277CA claim acknowledgment and 835 ERA as the `lineItemControlNumber`, allowing you to correlate these responses to specific service lines from the original claim. We strongly recommend setting the `lineItemControlNumber` to a ULID or other unique identifier for each service line. We recommend using a ULID instead of a UUID because the property has a max of 30 characters. #### Admission source code [#admission-source-code] The admission source code tells you where the patient came from, such as the emergency room (ER), a doctor's referral, or another facility. Most institutional claims require the admission source code. The one exception is non-patient lab services, where no patient is present. You must include the admission source code in the [`claimInformation.claimCodeInformation.admissionSourceCode`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimCodeInformation.admissionSourceCode) property for all institutional claims **except** when the `claimInformation.placeOfServiceCode` contains `14` (Non-Patient Laboratory). Stedi rejects claims that don't meet this requirement. #### Conditional requirements [#conditional-requirements] Note that objects marked as **required** are required for all requests, while others are conditionally required depending on the circumstances. When you include a conditionally required object, you must include all of its required properties. For example, you must always include the `subscriber` object in your request, but you only need to include the `supervising` object when a physician supervises the rendering provider. #### 275 claim attachments [#275-claim-attachments] If the claim requires attachments, you must include additional details about the attachments in the appropriate objects: - Attachments for entire claim: [`claimInformation.claimSupplementalInformation.reportInformation`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimSupplementalInformation.reportInformation) object or [`claimInformation.claimSupplementalInformation.reportInformations`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.claimSupplementalInformation.reportInformations) array (multiple attachments) - Attachments for a specific service line: [`claimInformation.serviceLines[].serviceLineSupplementalInformation`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformation) object or [`claimInformation.serviceLines[].serviceLineSupplementalInformations`](/healthcare/api-reference/post-healthcare-institutional-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformations) array (multiple attachments) Visit [Claim attachments](/healthcare/submit-claim-attachments) for complete instructions. ### Body - X12 EDI [#body---x12-edi] You must send a payload in [837 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-institutional-x223a2/01JBHW2YXMN2F9KXK2PS0BFP9F). Note the following requirements and behavior when sending institutional claims through the raw X12 endpoint. #### Envelope and header [#envelope-and-header] Stedi generates its own `ISA` and `GS` headers and `IEA` and `GE` trailers before sending your claim to the payer. You can submit your claim to Stedi with any values in these segments, as long as they conform to the X12 EDI specification. However, you must set `ST03` (Version, Release, or Industry Identifier) to `005010X223A2`. #### Payer ID [#payer-id] You must submit a payer identifier in `Loop 2010BB` (Payer Name) `NM109` so Stedi can route your claim to the correct payer. This identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). If you don't already have payer IDs you use today, we recommend using the primary Payer ID. You must include leading `0` characters in payer IDs. For example, use `00540` for SISCO, not `540`. #### `CLM01` (Patient Control Number) [#clm01-patient-control-number] We **strongly recommend** submitting a unique value for `Loop 2300` (Claim Information) `CLM01` (Patient Control Number). The payer returns this value in related transactions, such as the 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA), so you can correlate responses and real-time claim status checks with the original claim. When assigning a PCN, follow these best practices: - Use a unique PCN for each claim. The identifier should be more complex than a simple sequential number and should be hard to guess. - Use random strings. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters available in the [basic character set](#character-set) to create a strong, unique 17-character PCN for each claim. - Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](#character-restrictions), and avoid special characters that are only available in the extended character set. Payers are permitted to return data using the basic character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - Treat PCN values as case-insensitive when matching transactions, even if the submitted value included both lower and uppercase characters. #### Claim identifier [#claim-identifier] `Loop 2300 REF02` (Claim Identifier for Transmission Intermediaries) has different usage rules depending on your role: - **Providers:** Don't include `Loop 2300 REF02` when `REF01` = `D9` in your claim submission. It's reserved for clearinghouses and intermediaries. You can use `Loop 2300 CLM01` (Patient Control Number) to correlate claims with responses instead. - **Clearinghouses and intermediaries:** You can optionally include `REF*D9` in your 837 submissions. Stedi always returns this value in `Loop 2200D REF*D9` of 277CA claim acknowledgments, allowing you to match these responses to the claim. #### Service line identification [#service-line-identification-1] A claim can contain multiple service lines. Since the payer may accept, reject, or pay a subset of those lines, you can receive an 835 response that references a patient control number, but only pertains to some of the service lines. However, the line item control number serves as a unique identifier for each service line in your claim submission. - You can set the line item control number in `Loop 2400 REF02`, when `REF01` = `6R`. The line item control number appears in the 277CA and 835 ERA responses as the `lineItemControlNumber`, allowing you to correlate these responses to specific service lines from the original claim. - If you don't set the line item control number for a service line, Stedi uses a ULID. #### Admission source code [#admission-source-code-1] The admission source code tells you where the patient came from, such as the emergency room (ER), a doctor's referral, or another facility. Most institutional claims require the admission source code. The one exception is non-patient lab services, where no patient is present. You must include the admission source code in `Loop 2300 CLI02` (Admission Source Code) for all institutional claims **except** when `Loop 2300 C02301` (Facility Type Code) is `14` (Non-Patient Laboratory). Stedi rejects claims that don't meet this requirement. #### 275 claim attachments [#275-claim-attachments-1] If the claim requires attachments, you must include the `PWK` (Claim Supplemental Information) segment in `Loop 2300` (claim-level) or `Loop 2400` (service line) to identify the attachment. These elements are `PWK01`, `PWK02`, and `PWK06`. Visit [Claim attachments](/healthcare/submit-claim-attachments) for complete instructions. ### Character restrictions [#character-restrictions] Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause errors. The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included. The following special characters are included: ![Basic special characters](/images/basic-special-characters.png) The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`. The following additional special characters are included: ![Extended special characters](/images/extended-special-characters-healthcare.png) In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, `^`, and `>`. X12 doesn't support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly. - **837I JSON endpoint:** Don't include delimiter characters anywhere in your request data. - **837I Raw X12 endpoint:** You can use these characters as delimiters, but not in the body of the request data. ### Sample request and response [#sample-request-and-response] The following example sends an institutional claim. The response shape contains summary information from Stedi about the claim submission and whether it was successful. The response also includes an initial [277CA claim acknowledgment](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) from Stedi in the `x12` property, which indicates whether the claim passed Stedi's claim edits. {/* schema:InstitutionalClaimsSubmissionRequestContent */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/institutionalclaims/v1/submission \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: ' \ --data '{ "usageIndicator": "T", "tradingPartnerName": "UnitedHealthcare", "tradingPartnerServiceId": "87726", "submitter": { "organizationName": "Test Facility", "contactInformation": { "name": "Test Facility", "phoneNumber": "2225551234" }, "taxId": "123456789" }, "receiver": { "organizationName": "UnitedHealthcare" }, "subscriber": { "memberId": "98765", "paymentResponsibilityLevelCode": "P", "firstName": "JANE", "lastName": "DOE", "gender": "F", "dateOfBirth": "19000101", "address": { "address1": "1234 Some St", "city": "Buckeye", "state": "AZ", "postalCode": "85326" } }, "claimInformation": { "claimFilingCode": "ZZ", "patientControlNumber": "", "claimChargeAmount": "500.00", "placeOfServiceCode": "11", "claimFrequencyCode": "0", "planParticipationCode": "C", "benefitsAssignmentCertificationIndicator": "Y", "releaseInformationCode": "Y", "principalDiagnosis": { "qualifierCode": "ABK", "principalDiagnosisCode": "R45851" }, "serviceLines": [ { "assignedNumber": "0", "serviceDate": "20241015", "serviceDateEnd": "20241015", "lineItemControlNumber": "111222333", "institutionalService": { "serviceLineRevenueCode": "0800", "lineItemChargeAmount": "500.00", "measurementUnit": "UN", "serviceUnitCount": "1", "procedureIdentifier": "HC", "procedureCode": "H0001" } } ], "claimCodeInformation": { "admissionTypeCode": "3", "admissionSourceCode": "9", "patientStatusCode": "30" }, "claimDateInformation": { "admissionDateAndHour": "202409091000", "statementBeginDate": "20241015", "statementEndDate": "20241015" } }, "providers": [ { "providerType": "BillingProvider", "npi": "1999999976", "employerId": "123456789", "organizationName": "Test Facility", "address": { "address1": "123 Mulberry Street", "city": "Seattle", "state": "WA", "postalCode": "111135272" }, "contactInformation": { "name": "Test Facility", "phoneNumber": "2065551234" } }, { "providerType": "AttendingProvider", "npi": "1999999976", "firstName": "Doctor", "lastName": "Provider", "contactInformation": { "name": "name" } } ] }' ``` ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/institutionalclaims/v1/raw-x12-submission" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --header "Idempotency-Key: " \ --data '{ "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2004*^*00501*000000035*0*T*>~GS*HC*574183004559*STEDITEST*20260213*200422*35*X*005010X223A2~ST*837*0001*005010X223A2~BHT*0019*00*01KHC9KCMYMA7YSW4K1ZM774ZA*20260213*2003*CH~NM1*41*2*Test Facility*****46*123456789~PER*IC**TE*2225551234~NM1*40*2*UnitedHealthcare*****46*87726~HL*1**20*1~NM1*85*2*Test Facility*****XX*1999999976~N3*123 Mulberry Street~N4*Seattle*WA*111135272~REF*EI*123456789~HL*2*1*22*0~SBR*P*18*******ZZ~NM1*IL*1*DOE*JANE****MI*98765~N3*1234 Some St~N4*Buckeye*AZ*85326~DMG*D8*19000101*F~NM1*PR*2*UnitedHealthcare*****PI*87726~CLM*55556666777888*500***11>A>0**C*Y*Y~DTP*434*RD8*20241015-20241015~DTP*435*DT*202409091000~CL1*3*9*30~HI*ABK>R45851~NM1*71*1*Provider*Doctor****XX*1999999976~LX*1~SV2*0800*HC>H0001*500*UN*1~DTP*472*RD8*20241015-20241015~REF*6R*111222333~SE*28*0001~GE*1*35~IEA*1*000000035~" }' ``` {/* schema:InstitutionalClaimsSubmissionResponseContent */} ```json { "status": "SUCCESS", "controlNumber": "1", "tradingPartnerServiceId": "87726", "claimReference": { "correlationId": "01KHC9G8FMGZ6CA9TQT704RAMB", "patientControlNumber": "12345", "timeOfResponse": "2026-02-13T20:01:34.919Z", "formatVersion": "5010", "rhClaimNumber": "01KHC9G8FMGZ6CA9TQT704RAMB", "payerId": "87726", "serviceLines": [ { "lineItemControlNumber": "111222333" } ] }, "meta": { "traceId": "65602add-af9c-4aec-9b8f-9fed3badab3c" }, "payer": { "payerName": "UnitedHealthcare", "payerID": "87726" }, "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*2001*^*00501*929135779*0*T*`~GS*HN*STEDITEST*574183004559*20260213*200134*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC9GC66KDRVHEJC42Q103EQ*20260213*200134*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC9GC66KDRVHEJC42Q103EQ~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Facility*****46*123456789~TRN*2*01KHC9G8FMGZ6CA9TQT704RAMB~STC*A0`17`AY*20260213*WQ*500.0~QTY*90*1~AMT*YU*500.0~HL*3*2*19*1~NM1*85*2*Test Facility*****XX*1999999976~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*500.0~HL*4*3*PT*0~NM1*QC*1*DOE*JANE****MI*98765~TRN*2*12345~STC*A1`20*20260213*WQ*500.0~DTP*472*RD8*20241015-20241015~SE*25*0001~GE*1*1~IEA*1*929135779~", "httpStatusCode": "200 OK" } ``` ### Concurrency and rate limits [#concurrency-and-rate-limits] Institutional claim submission endpoints share both a rate limit pool and a concurrency pool with other claim endpoints. For more information, visit [Limits](/healthcare/api-reference#limits). ### Recommended API clients [#recommended-api-clients] You may want to use an API client to make testing and debugging easier. We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead. ## View submitted claims [#view-submitted-claims] In the [claims view](https://portal.stedi.com/app/healthcare/claims), you can review and filter every claim in your account. Toggle **Test mode** in the side navigation to view test or production claims. Click any claim to review its details. ## Submit claims to a secondary or tertiary payer [#submit-claims-to-a-secondary-or-tertiary-payer] In [coordination of benefits (COB)](/healthcare/coordination-of-benefits) scenarios, you'll need to submit a claim to multiple payers. You must set the `subscriber.paymentResponsibilityLevelCode` to either `S` (when submitting to the secondary payer) or `T` (when submitting to the tertiary payer). You must also include the following information about how prior payers have adjudicated the claim. For example, if a patient's private insurance plan (primary payer) adjusted the requested reimbursement amount and paid for its portion of the services, you must include that information in the claim you submit to Medicare (secondary payer). You can find these details in 835 ERA responses from prior payers. ### Claim information [#claim-information] You must submit one object in the `claimInformation.otherSubscriberInformation` array for each prior payer. Supply all the required properties in the object plus the following additional information: - `claimLevelAdjustments`: Provide if the prior payer made adjustments at the claim level. Codes and their associated amounts must come from ERAs sent by the prior payers. You can find these codes in the ERA's [`transactions[].detailInfo[].paymentInfo[].claimAdjustments`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimAdjustments) array. - `medicareInpatientAdjudication` (institutional claims only): You must include this if Medicare was one of the prior payers and reported inpatient adjudication information on the ERA. - `medicareOutpatientAdjudication`: You must include this if Medicare was one of the prior payers and reported outpatient adjudication information on the ERA. - `otherPayerName.otherPayerAdjudicationOrPaymentDate`: The date the payer adjudicated or paid the claim. You must provide this if you aren't providing a value in the `claimInformation.serviceLines[].lineAdjudicationInformation[].adjudicationOrPaymentDate` property. - `payerPaidAmount`: This is the total amount in dollars the payer paid on this claim. ### Service line information [#service-line-information] You must submit `serviceLines[].lineAdjudicationInformation` objects when the prior payers provided line-level adjudication information. Submit one object for each prior payer. For each object, you should include the following properties. - `adjudicationOrPaymentDate`: The date the payer adjudicated or paid the claim. Don't include this if you're providing a date in the `otherPayerName.otherPayerAdjudicationOrPaymentDate` property. - `claimAdjustmentInformation`: You can find this information in the ERA's [`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.serviceLines.serviceAdjustments) array. - `otherPayerPrimaryIdentifier`: The identifier for the other payer. This value should match the identifier you supplied for the payer in the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - `procedureCode`: The adjudicated procedure code for the service line. - `serviceIdQualifier`: A code identify the type of procedure code. Visit [Claims code lists](/healthcare/claims-code-lists#composite-medical-procedure---product-or-service-id-qualifier-codes) for a complete list. - `serviceLinePaidAmount`: The total amount in dollars the prior payer paid on this service line. - `paidServiceUnitCount`: The number of paid units for the service line. When paid units are not present on the remittance advice, use the original billed units. - `remainingPatientLiability`: The amount of the service line the patient is responsible for paying. ## Claim Filing Indicator Code [#claim-filing-indicator-code] The Claim Filing Indicator Code indicates how you file a claim with a payer, such as `MC` (Medicaid) or `CI` (Commercial Insurance Co.). Choosing the correct claim filing indicator code is important for successful claim submission. Visit the [Claims code lists](/healthcare/claims-code-lists#choosing-the-right-code) documentation for best practices for selecting the appropriate code. # Submit paper claims Source: https://www.stedi.com/docs/healthcare/submit-paper-claims Submit paper claims to payers through Stedi. Submit the claim electronically, and Stedi prints and mails it for you. Some payers require you to submit claims on paper rather than electronically. Instead of mailing these claims yourself, you can send the claim information to Stedi using an electronic submission workflow with the receiver ID set to `PAPER`. Stedi then handles printing and mailing the claim to the designated payer on your behalf. You can submit the following claim types for printing and mailing: {/* prettier-ignore-start */} | Claim Type | Submission Methods | | ---------- | ------------------ | | Professional (CMS-1500 form) | **API:** [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) \| [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) \| [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12)
**SFTP:** 837P X12 EDI
**UI:** 1500 form | | Institutional (UB-04 form) | **API:** [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) \| [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12)
**SFTP:** 837I X12 EDI | | Dental (ADA form) | **API:** [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims) \| [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12)
**SFTP:** 837D X12 EDI | {/* prettier-ignore-end */} ## How it works [#how-it-works] Here's the end-to-end paper claims process: Submit an 837 claim with the [receiver ID](#paper-receiver-id) set to `PAPER` and the payer's mailing address. For some submission types, you can also include unsolicited 275 claim attachments. Stedi validates the claim and any attachments before sending them to our print-and-mail partner for processing. You can monitor progress through the claims view in the Stedi portal. The [claim timeline](#track-print-status) for paper claims shows its print status as the claim moves through staged, queued, printed, and mailed stages. You receive a 277CA claim acknowledgment for every successful submission, and another 277CA when the claim is mailed or when the claim fails. Once available, you can [download the PDF proof](#pdf-proof-of-mailing) showing exactly what was mailed to the payer. The payer receives the printed claim package and processes it. They typically mail an Explanation of Payment (EOP) for commercial payers or Standard Paper Remittance (SPR) for Medicare and Medicaid back to the provider. ## Limitations [#limitations] Paper claims have the following limitations: - **No test mode**: You can submit paper claims in test mode and with a test API key, but Stedi doesn't generate test lifecycle 277CAs, such as a 277CA indicating the test claim was mailed. - **No preview**: You can't preview the rendered claim form before submission. Once available, you can download a PDF proof from the Stedi portal. - **No attachments for raw X12 API submission**: The raw X12 endpoints ([837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12), [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12), [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12)) don't support paper claims with attachments. Use the JSON APIs, SFTP, or the CMS-1500 UI form instead. - **ERAs typically unavailable**: Payers that require paper claim submission usually don't support Electronic Remittance Advice (ERAs). Instead, they typically mail an Explanation of Payment (EOP) for commercial payers or Standard Paper Remittance (SPR) for Medicare and Medicaid back to the provider. ## Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) isn't required for paper claim submission - it's only required for electronic transactions. You may still need to complete transaction enrollment for Electronic Remittance Advice (ERAs) if the payer supports them. However, payers that require paper claim submission usually _don't_ support ERAs: - HIPAA covered entity health plans are required to send ERAs electronically. - Other health plans may use different formats and communication channels for both claim submissions and remittances. ## Submit paper claims [#submit-paper-claims] You can submit paper claims through JSON APIs, X12 EDI (through API or SFTP), or the CMS-1500 form in the Stedi portal. All submission methods require you to set the receiver ID to `PAPER` and include the payer's mailing address. You can also include unsolicited claim attachments with most submission methods. ### Paper receiver ID [#paper-receiver-id] Stedi uses a special payer ID to route claim submissions for printing and mailing: `PAPER` (Print and Mail - All Payers). You must submit this as the **receiver ID** in the claim submission. For paper claims, the receiver ID determines whether Stedi prints and mails a claim or sends it electronically: {/* prettier-ignore-start */} | Name | Location | Description | | ---- | -------- | ----------- | | **Receiver ID** |
  • **JSON:** `receiver.receiverId`
  • **X12 EDI:** `Loop 1000B` (Receiver Name) `NM109`
  • **CMS-1500 UI:** **Send** section
| Controls the delivery method. | | **Payer ID** |
  • **JSON:** `tradingPartnerServiceId`
  • **X12 EDI:** `Loop 2010BB` (Payer Name) `NM109`
  • **CMS-1500 UI:** **Stedi payer** dropdown
| Identifies the destination payer. | {/* prettier-ignore-end */} When the receiver ID is `PAPER` (or you select **By mail** in the CMS-1500 form), Stedi bypasses the traditional electronic submission flow and uses the mail-to payer name and mailing address to print and mail a paper claim to the payer. You must still set the payer ID to the destination payer's ID or alias, if available in the Stedi [Payer Network](https://www.stedi.com/healthcare/network). However, you can also set the payer ID to `PAPER` when you need to send paper claims to payers outside of the electronic network. For example, you can set the receiver ID to `PAPER` while keeping the payer ID as `CIGNA`. This, along with Cigna's mailing address, tells Stedi to print and mail the claim to Cigna. ### JSON API [#json-api] You can send paper claims through the following JSON endpoints: - [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) - [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) - [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims) - [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) Construct your claim request as you normally do. Then, add the following information. {/* prettier-ignore-start */} | Property | Description | | ----- | ----------- | | `receiver.organizationName` | The actual payer name, such as Cigna. | | `receiver.receiverId` | Set to `PAPER`. This is what tells Stedi to bypass the typical electronic submission flow and instead route this claim to be printed and mailed. | | `tradingPartnerName` | The mail-to payer name. This is what should be listed on the physical envelope. This information may be different from `receiver.organizationName`. | | `tradingPartnerServiceId` | Set this to the destination payer's ID or alias, if available in the Stedi [Payer Network](https://www.stedi.com/healthcare/network). If you're sending claims to payers outside the Payer Network, set this to `PAPER`. | | `payerAddress.address1` | The first line of the street address. This typically contains the building number and street name. | | `payerAddress.address2` | The second line of the street address. This is optional, and typically contains the apartment or suite number, if relevant. | | `payerAddress.city` | The city name. | | `payerAddress.state` | The state or province code. Only required when the city is in the United States and Canada. | | `payerAddress.postalCode` | The postal zone or ZIP Code. Exclude punctuation and spaces. | {/* prettier-ignore-end */} After you submit the claim, Stedi uses the receiver ID set to `PAPER`, the payer ID, and the mailing address you provided to route the claim for printing and mailing. #### Example: Professional paper claim [#example-professional-paper-claim] The following example sends a professional paper claim to Cigna. ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/submission" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "receiver": { "receiverId": "PAPER", "organizationName": "CIGNA" }, "tradingPartnerName": "CIGNA", "tradingPartnerServiceId": "62308", "payerAddress": { "address1": "123 Example Street", "address2": "STE 100", "city": "Mountain View", "state": "CA", "postalCode": "940433706" } ... // remaining claim data }' ``` #### Example: Payer not in Stedi's network [#example-payer-not-in-stedis-network] The following example sets the `tradingPartnerServiceId` to `PAPER` because this payer is outside the Stedi [Payer Network](https://www.stedi.com/healthcare/network). ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/submission" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "receiver": { "receiverId": "PAPER", "organizationName": "ACME Employer LLC" }, "tradingPartnerName": "ACME Employer LLC", "tradingPartnerServiceId": "PAPER", "payerAddress": { "address1": "987 Example Street", "address2": "STE 200", "city": "Philadelphia", "state": "PA", "postalCode": "19192" }, ... // remaining claim data }' ``` ### X12 EDI - API and SFTP [#x12-edi---api-and-sftp] You can send X12 EDI claims through the following methods: - **API endpoints:** [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) | [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12) | [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12) - **SFTP:** [SFTP connection guide](/healthcare/submit-claims-sftp-connection) The raw X12 API endpoints don't support paper claims with attachments. Use the JSON APIs, SFTP, or the CMS-1500 UI form instead. Construct an X12 EDI claim as you normally do. Then, add the following information. {/* prettier-ignore-start */} | Location | Elements | | ------- | ----------- | | `Loop 1000B` (Receiver Name) | Set the following paper-specific elements:
  • `NM103`: The actual payer name, such as Cigna.
  • `NM109`: Set to `PAPER`. This is what tells Stedi to bypass the typical electronic submission flow and instead route this claim to be printed and mailed.
| | `Loop 2010BB` (Payer Name) | Set the following paper-specific elements:
  • `NM103`: The mail-to payer name. This is what should be listed on the physical envelope. This information may be different from `1000B NM103`.
  • `NM109`: Set this to the destination payer's ID or alias, if available in the Stedi [Payer Network](https://www.stedi.com/healthcare/network). If you're sending claims to payers outside the Payer Network, set this to `PAPER`.
  • `N301`: The first line of the street address. This typically contains the building number and street name.
  • `N302`: The second line of the street address. This is optional, and typically contains the apartment or suite number, if relevant.
  • `N401`: The city name.
  • `N402`: The state or province code. Only required when the city is in the United States and Canada.
  • `N403`: The postal zone or ZIP Code. Exclude punctuation and spaces.
| {/* prettier-ignore-end */} After you submit the claim, Stedi uses the receiver ID set to `PAPER`, the payer ID, and the mailing address you provided to route the claim for printing and mailing. #### Example: Professional paper claim [#example-professional-paper-claim-1] The following example uses: - The payer payer ID `PAPER` in `Loop 1000B` (Receiver Name) `NM109`. - Cigna's payer ID from the Stedi [Payer Network](https://www.stedi.com/healthcare/network) in `Loop 2010BB` (Payer Name) `NM109`. ``` ISA...~ GS...~ ST*837*0001*005010X222A1~ ... NM1*40*2*CIGNA*****46*PAPER~ // Paper payer ID NM1*PR*2*CIGNA*****PI*62308~ // Name and payer ID N3*123 Example Street*STE 100~ // Mailing address N4*Mountain View*CA*940433706~ ... SE...~ GE...~ IEA...~ ``` #### Example: Payer not in Stedi's network [#example-payer-not-in-stedis-network-1] The following example uses: - The payer payer ID `PAPER` in `Loop 1000B` (Receiver Name) `NM109`. - The paper payer ID `PAPER` in `Loop 2010BB` (Payer Name) `NM109`. This lets you submit paper claims to payers outside of the Stedi [Payer Network](https://www.stedi.com/healthcare/network). ``` ISA...~ GS...~ ST*837*0001*005010X222A1~ ... NM1*40*2*ACME Employer LLC*****46*PAPER~ // Paper payer ID NM1*PR*2*ACME Employer LLC*****PI*PAPER~ // Name and paper payer ID N3*987 Example Street*STE 200~ // Mailing address N4*Philadelphia*PA*19192~ ... SE...~ GE...~ IEA...~ ``` ### CMS-1500 form UI [#cms-1500-form-ui] You can submit professional paper claims through the [CMS-1500 form UI](https://portal.stedi.com/app/healthcare/claims/create) in the Stedi portal. Within the form, configure these paper-specific settings: ![CMS-1500 paper claim fields](/images/providers/cms-1500-paper-claims.png) 1. In the **Send** section, select **By mail**. This expands the UI to show additional fields for the mail-to payer name and payer address. 2. In the **Stedi payer** dropdown: - If the payer exists in Stedi's Payer Network, select it from the dropdown. - If the payer is not in the network, check **I'm sending to a payer not found in Stedi's network**. Stedi automatically populates the dropdown with the **Print and Mail - All Payers** option. 3. In the **Postage address** section: - Update the **Mail-to payer name** if necessary. This becomes the addressee on the physical envelope. - Complete the **Payer address** fields with the complete mailing address where Stedi sends the claim. 4. For attachments: - In the **Claim attachments** section, choose a **Report type**. - Attach a PDF file to the submission. Paper claims don't support other file types. Stedi prints the attachment in color and mails it along with the claim to the payer. After you submit the claim, Stedi uses the paper payer ID and the mailing address you provided to route the claim for printing and mailing. ### Paper claim attachments [#paper-claim-attachments] You can submit unsolicited 275 claim attachments with paper claims through most submission methods. For JSON API submissions, Stedi uses the `attachmentId` to pair the claim with attachments. For SFTP submissions, Stedi uses the attachment control number. Then, Stedi routes both for printing and mailing. {/* prettier-ignore-start */} | Submission method | Supported? | | ----------------- | ----------------------------- | | JSON APIs | Yes | | SFTP | Yes\* | | UI (CMS-1500 form) | Yes | | Raw X12 APIs | No | {/* prettier-ignore-end */} \*For SFTP submissions, you must submit both the paper 837 claim and 275 attachment in the same interchange. Stedi doesn't support sending paper 837 claims and 275 attachments separately through SFTP or the raw X12 endpoints. Paper claim attachments must be PDF files. - **JSON APIs:** When you create the attachment with [Create Claim Attachment](/healthcare/api-reference/post-healthcare-create-claim-attachment#body.contentType), set `contentType` to `application/pdf`. If a paper claim references an attachment with a different `contentType`, Stedi rejects the claim with an HTTP `400` error and the following message: ```text Attachment {attachmentId} is not a PDF. Paper claims only accept `application/pdf` attachments. ``` Stedi also checks the uploaded file's contents, not just the `contentType`. If the file isn't a PDF, Stedi doesn't send the claim, and Stedi Support contacts you. - **SFTP:** The 275 `Loop 2110B BIN02` (Binary Data) must contain the PDF as a MIME entity: MIME headers, a blank line, and then the PDF encoded as Base64. The MIME headers must: - Set `Content-Type` to `application/pdf`, with no parameters such as `name`. - Set `Content-Transfer-Encoding` to `base64`. - End each line with a carriage return and line feed (CRLF). Set `BIN01` (Binary Data Length Number) to the byte count of the entire MIME entity, including the headers and line endings. Stedi doesn't accept other formats, such as raw PDF bytes or Base64 without MIME headers. If BIN02 isn't in this format, Stedi doesn't send the claim, and Stedi Support contacts you. For example, BIN02 might contain the following. Each line ends with CRLF, including the blank line between the headers and the Base64 data. ```text MIME-Version: 1.0 Content-Type: application/pdf Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="record.pdf" JVBERi0xLjQKJ... ``` - **CMS-1500 form:** Upload attachments as PDF files. For complete instructions on submitting unsolicited paper claim attachments visit [Submit claim attachments](/healthcare/submit-claim-attachments#paper). ### Secondary and tertiary paper claims [#secondary-and-tertiary-paper-claims] When you submit a paper claim to a secondary or tertiary payer, include the prior payers' adjudication information in the claim, the same way as for an electronic claim. Where to include line adjudication information: - **JSON**: `claimInformation.serviceLines[].lineAdjudicationInformation` in the [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims), [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims), and [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims) endpoints. The [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint doesn't support secondary or tertiary claims. - **X12 EDI**: `Loop 2430` (Line Adjudication Information) For complete instructions on submitting to a secondary or tertiary payer, visit the [professional claims](/healthcare/submit-professional-claims#submit-to-a-secondary-or-tertiary-payer), [dental claims](/healthcare/submit-dental-claims#submit-claims-to-a-secondary-or-tertiary-payer), or [institutional claims](/healthcare/submit-institutional-claims#submit-claims-to-a-secondary-or-tertiary-payer) documentation. When a service line includes the prior payer's line adjudication information, Stedi's print-and-mail partner prints supporting Explanation of Benefits (EOB) pages with the prior payers' adjudication details and mails them with the claim form. Stedi charges for supporting EOB pages at the same rate as additional claim pages. For current rates, visit [Stedi pricing](https://www.stedi.com/pricing). ## Track print status [#track-print-status] As a paper claim moves through the print-and-mail workflow, it goes through the following statuses: {/* prettier-ignore-start */} | Stage | Meaning | | ----- | ------- | | Staged | Stedi accepted the claim for mailing. | | Queued | The print-and-mail partner queued the claim for printing. | | Printed | The print-and-mail partner printed the claim form and any attachments. | | Mailed | The print-and-mail partner mailed the claim package to the payer. | | Failed | The claim wasn't mailed. The timeline row shows the reason. | {/* prettier-ignore-end */} Stedi mails claim packages within the US using [USPS First Class](https://www.usps.com/ship/first-class-mail.htm) postage. USPS estimates delivery in 1 to 5 days. The latest print status appears in several locations: - **[Claims view](/healthcare/claims-view)**: Shows the status as an icon in the **Status** column. You can filter by print status. - **Claim details panel and claim timeline**: The Claim details panel displays the current status in the **Print status** row. The claim timeline shows the progression through each stage. ![Paper claims timeline](/images/providers/paper-claims-timeline.png) You receive [277CA claim acknowledgments](#277ca-claim-acknowledgments) when the claim reaches the **Mailed** or **Failed** status. ## Responses [#responses] When you submit a paper claim, you receive different types of responses than you do for electronic claims. This section explains what to expect. ### Receipt confirmation [#receipt-confirmation] Immediately after submission, Stedi confirms receipt: - **API**: Stedi returns an HTTP response with claim submission details. - **SFTP**: Stedi generates a 999 Functional Acknowledgment confirming receipt of the EDI file. - **UI**: The portal displays a confirmation message with the submitted claim details. ### 277CA claim acknowledgments [#277ca-claim-acknowledgments] Stedi generates a 277CA claim acknowledgment with status `A1`/`20` when it accepts a claim for processing and marks the claim's status as **Staged**. After that, Stedi sends a 277CA when the claim reaches **Mailed** status or **Failed** status. Visit [Track print status](#track-print-status) for details on all available statuses. The following example shows a 277CA with status `A0`/`16` indicating the claim was successfully mailed to the payer. ``` ISA*00* *00* *ZZ*STEDITEST *ZZ*717279731953 *260828*2007*^*00501*000000421*0*T*`~ GS*HN*STEDITEST*717279731953*20260828*200759*421*X*005010X214~ ST*277*0001*005010X214~ BHT*0085*08*71b6c07c-b988-5eac-ad5c-bd2544084f62*20260629*155125*TH~ HL*1**20*1~ NM1*AY*2*STEDI INC*****46*117151744~ TRN*1*71b6c07c-b988-5eac-ad5c-bd2544084f62~ DTP*050*D8*20260629~ DTP*009*D8*20260629~ HL*2*1*21*1~ NM1*41*2*Test Data Health Services, Inc.*****46*5555555~ TRN*2*01KYWPRECKWJH0NZT1C0MWH6DS~ STC*A1`20*20260629*WQ*109.2~ QTY*90*1~ AMT*YU*109.2~ HL*3*2*19*1~ NM1*85*2*Therapy Associates*****XX*1427695980~ TRN*1*0~ REF*TJ*123456789~ QTY*QA*1~ AMT*YU*109.2~ HL*4*3*PT*0~ NM1*QC*1*Anon*John****MI*U7777788888~ TRN*2*PROF-PCN-2305227461~ STC*A0`16`PR*20260629*WQ*109.2********The claim has been mailed to the payer. Further updates for the claim may become available via mail.~ REF*D9*6BR4L9SZ12F7F6FH57SI~ DTP*472*RD8*20240101-20240101~ SE*26*0001~ GE*1*421~ IEA*1*000000421~ ``` ```json { "heading": { "beginning_of_hierarchical_transaction_BHT": { "transaction_set_purpose_code_02": "08", "transaction_set_creation_date_04": "2026-06-29", "transaction_type_code_06": "TH", "transaction_set_creation_time_05": "15:51:25", "hierarchical_structure_code_01": "0085", "reference_identification_03": "71b6c07c-b988-5eac-ad5c-bd2544084f62" }, "transaction_set_header_ST": { "transaction_set_identifier_code_01": "277", "transaction_set_control_number_02": 1, "version_release_or_industry_identifier_03": "005010X214" } }, "detail": { "information_source_level_HL_loop": [ { "information_receiver_level_HL_loop": [ { "information_receiver_name_NM1_loop": { "information_receiver_name_NM1": { "information_receiver_primary_identifier_09": "5555555", "entity_type_qualifier_02": "2", "entity_identifier_code_01": "41", "identification_code_qualifier_08": "46", "information_receiver_last_or_organization_name_03": "Test Data Health Services, Inc." } }, "information_receiver_application_trace_identifier_TRN_loop": { "information_receiver_application_trace_identifier_TRN": { "trace_type_code_01": "2", "claim_transaction_batch_number_02": "01KYWPRECKWJH0NZT1C0MWH6DS" }, "information_receiver_status_information_STC": [ { "action_code_03": "WQ", "health_care_claim_status_01": { "health_care_claim_status_category_code_01": "A1", "health_care_claim_status_code_02": "20" }, "status_information_effective_date_02": "2026-06-29", "total_submitted_charges_for_unit_work_04": 109.2 } ], "total_accepted_amount_AMT": { "amount_qualifier_code_01": "YU", "total_accepted_amount_02": 109.2 }, "total_accepted_quantity_QTY": { "total_accepted_quantity_02": 1, "quantity_qualifier_01": "90" } }, "billing_provider_of_service_level_HL_loop": [ { "billing_provider_name_NM1_loop": { "billing_provider_name_NM1": { "identification_code_qualifier_08": "XX", "entity_identifier_code_01": "85", "provider_last_or_organization_name_03": "Therapy Associates", "billing_provider_identifier_09": "1427695980", "entity_type_qualifier_02": "2" } }, "patient_level_HL_loop": [ { "claim_status_tracking_number_TRN_loop": [ { "claim_level_service_date_DTP": { "date_time_qualifier_01": "472", "date_time_period_format_qualifier_02": "RD8", "claim_service_period_03": "20240101-20240101" }, "claim_identifier_for_transmission_intermediaries_REF": { "reference_identification_qualifier_01": "D9", "clearinghouse_trace_number_02": "6BR4L9SZ12F7F6FH57SI" }, "claim_level_status_information_STC": [ { "free_form_message_text_12": "The claim has been mailed to the payer. Further updates for the claim may become available via mail.", "health_care_claim_status_01": { "entity_identifier_code_03": "PR", "health_care_claim_status_code_02": "16", "health_care_claim_status_category_code_01": "A0" }, "status_information_action_code_03": "WQ", "total_claim_charge_amount_04": 109.2, "status_information_effective_date_02": "2026-06-29" } ], "claim_status_tracking_number_TRN": { "trace_type_code_01": "2", "patient_control_number_02": "PROF-PCN-2305227461" } } ], "patient_name_NM1_loop": { "patient_name_NM1": { "patient_identification_number_09": "U7777788888", "patient_first_name_04": "John", "patient_last_name_03": "Anon", "identification_code_qualifier_08": "MI", "entity_identifier_code_01": "QC", "entity_type_qualifier_02": "1" } } } ], "provider_of_service_information_trace_identifier_TRN_loop": { "total_accepted_quantity_QTY": { "total_accepted_quantity_02": 1, "quantity_qualifier_01": "QA" }, "provider_secondary_identifier_REF": [ { "billing_provider_additional_identifier_02": "123456789", "reference_identification_qualifier_01": "TJ" } ], "total_accepted_amount_AMT": { "total_accepted_amount_02": 109.2, "amount_qualifier_code_01": "YU" }, "provider_of_service_information_trace_identifier_TRN": { "provider_of_service_information_trace_identifier_02": "0", "trace_type_code_01": "1" } } } ] } ], "information_source_name_NM1_loop": { "information_source_name_NM1": { "information_source_identifier_09": "117151744", "entity_identifier_code_01": "AY", "identification_code_qualifier_08": "46", "entity_type_qualifier_02": "2", "information_source_name_03": "STEDI INC" } }, "transmission_receipt_control_identifier_TRN_loop": { "transmission_receipt_control_identifier_TRN": { "information_source_application_trace_identifier_02": "71b6c07c-b988-5eac-ad5c-bd2544084f62", "trace_type_code_01": "1" }, "information_source_process_date_DTP": { "date_time_period_format_qualifier_02": "D8", "date_time_qualifier_01": "009", "information_source_process_date_03": "20260629" }, "information_source_receipt_date_DTP": { "date_time_qualifier_01": "050", "information_source_receipt_date_03": "20260629", "date_time_period_format_qualifier_02": "D8" } } } ], "transaction_set_trailer_SE": { "transaction_segment_count_01": 26, "transaction_set_control_number_02": 1 } } } ``` The following example shows a 277CA with status `A7`/`126` indicating the payer address failed validation and the claim was not mailed. ``` ISA*00* *00* *ZZ*STEDITEST *ZZ*717279731953 *260828*2013*^*00501*000000422*0*T*`~ GS*HN*STEDITEST*717279731953*20260828*201342*422*X*005010X214~ ST*277*0001*005010X214~ BHT*0085*08*5047e101-cf0d-59d0-a599-4dad2ec833bc*20260629*155125*TH~ HL*1**20*1~ NM1*AY*2*STEDI INC*****46*117151744~ TRN*1*5047e101-cf0d-59d0-a599-4dad2ec833bc~ DTP*050*D8*20260629~ DTP*009*D8*20260629~ HL*2*1*21*1~ NM1*41*2*Test Data Health Services, Inc.*****46*5555555~ TRN*2*01KYWPRECKWJH0NZT1C0MWH6DS~ STC*A1`20*20260629*WQ*109.2~ QTY*90*1~ AMT*YU*109.2~ HL*3*2*19*1~ NM1*85*2*Therapy Associates*****XX*1427695980~ TRN*1*0~ REF*TJ*123456789~ QTY*QA*1~ AMT*YU*109.2~ HL*4*3*PT*0~ NM1*QC*1*Anon*John****MI*U7777788888~ TRN*2*PROF-PCN-2305227461~ STC*A7`126`PR*20260629*U*109.2********The claim was not mailed due to a validation error of the payer address provided. Please check the provided payer address (2010BB N3/N4) and resubmit.~ REF*D9*6BR4L9SZ12F7F6FH57SI~ DTP*472*RD8*20240101-20240101~ SE*26*0001~ GE*1*422~ IEA*1*000000422~ ``` ```json { "detail": { "information_source_level_HL_loop": [ { "information_receiver_level_HL_loop": [ { "information_receiver_name_NM1_loop": { "information_receiver_name_NM1": { "entity_type_qualifier_02": "2", "information_receiver_primary_identifier_09": "5555555", "identification_code_qualifier_08": "46", "entity_identifier_code_01": "41", "information_receiver_last_or_organization_name_03": "Test Data Health Services, Inc." } }, "billing_provider_of_service_level_HL_loop": [ { "billing_provider_name_NM1_loop": { "billing_provider_name_NM1": { "entity_type_qualifier_02": "2", "entity_identifier_code_01": "85", "provider_last_or_organization_name_03": "Therapy Associates", "identification_code_qualifier_08": "XX", "billing_provider_identifier_09": "1427695980" } }, "patient_level_HL_loop": [ { "claim_status_tracking_number_TRN_loop": [ { "claim_status_tracking_number_TRN": { "trace_type_code_01": "2", "patient_control_number_02": "PROF-PCN-2305227461" }, "claim_level_service_date_DTP": { "claim_service_period_03": "20240101-20240101", "date_time_period_format_qualifier_02": "RD8", "date_time_qualifier_01": "472" }, "claim_level_status_information_STC": [ { "free_form_message_text_12": "The claim was not mailed due to a validation error of the payer address provided. Please check the provided payer address (2010BB N3/N4) and resubmit.", "health_care_claim_status_01": { "health_care_claim_status_code_02": "126", "entity_identifier_code_03": "PR", "health_care_claim_status_category_code_01": "A7" }, "status_information_effective_date_02": "2026-06-29", "total_claim_charge_amount_04": 109.2, "status_information_action_code_03": "U" } ], "claim_identifier_for_transmission_intermediaries_REF": { "reference_identification_qualifier_01": "D9", "clearinghouse_trace_number_02": "6BR4L9SZ12F7F6FH57SI" } } ], "patient_name_NM1_loop": { "patient_name_NM1": { "patient_first_name_04": "John", "patient_last_name_03": "Anon", "patient_identification_number_09": "U7777788888", "entity_identifier_code_01": "QC", "identification_code_qualifier_08": "MI", "entity_type_qualifier_02": "1" } } } ], "provider_of_service_information_trace_identifier_TRN_loop": { "total_accepted_quantity_QTY": { "total_accepted_quantity_02": 1, "quantity_qualifier_01": "QA" }, "total_accepted_amount_AMT": { "amount_qualifier_code_01": "YU", "total_accepted_amount_02": 109.2 }, "provider_secondary_identifier_REF": [ { "billing_provider_additional_identifier_02": "123456789", "reference_identification_qualifier_01": "TJ" } ], "provider_of_service_information_trace_identifier_TRN": { "provider_of_service_information_trace_identifier_02": "0", "trace_type_code_01": "1" } } } ], "information_receiver_application_trace_identifier_TRN_loop": { "total_accepted_amount_AMT": { "amount_qualifier_code_01": "YU", "total_accepted_amount_02": 109.2 }, "total_accepted_quantity_QTY": { "quantity_qualifier_01": "90", "total_accepted_quantity_02": 1 }, "information_receiver_application_trace_identifier_TRN": { "trace_type_code_01": "2", "claim_transaction_batch_number_02": "01KYWPRECKWJH0NZT1C0MWH6DS" }, "information_receiver_status_information_STC": [ { "action_code_03": "WQ", "status_information_effective_date_02": "2026-06-29", "total_submitted_charges_for_unit_work_04": 109.2, "health_care_claim_status_01": { "health_care_claim_status_code_02": "20", "health_care_claim_status_category_code_01": "A1" } } ] } } ], "information_source_name_NM1_loop": { "information_source_name_NM1": { "entity_type_qualifier_02": "2", "entity_identifier_code_01": "AY", "identification_code_qualifier_08": "46", "information_source_identifier_09": "117151744", "information_source_name_03": "STEDI INC" } }, "transmission_receipt_control_identifier_TRN_loop": { "information_source_receipt_date_DTP": { "date_time_qualifier_01": "050", "date_time_period_format_qualifier_02": "D8", "information_source_receipt_date_03": "20260629" }, "information_source_process_date_DTP": { "date_time_period_format_qualifier_02": "D8", "information_source_process_date_03": "20260629", "date_time_qualifier_01": "009" }, "transmission_receipt_control_identifier_TRN": { "trace_type_code_01": "1", "information_source_application_trace_identifier_02": "5047e101-cf0d-59d0-a599-4dad2ec833bc" } } } ], "transaction_set_trailer_SE": { "transaction_set_control_number_02": 1, "transaction_segment_count_01": 26 } }, "heading": { "transaction_set_header_ST": { "transaction_set_identifier_code_01": "277", "version_release_or_industry_identifier_03": "005010X214", "transaction_set_control_number_02": 1 }, "beginning_of_hierarchical_transaction_BHT": { "hierarchical_structure_code_01": "0085", "reference_identification_03": "5047e101-cf0d-59d0-a599-4dad2ec833bc", "transaction_set_creation_time_05": "15:51:25", "transaction_set_creation_date_04": "2026-06-29", "transaction_type_code_06": "TH", "transaction_set_purpose_code_02": "08" } } } ``` #### Resolve address validation failures [#resolve-address-validation-failures] An address validation failure means the print-and-mail partner couldn't validate the payer mailing address. Review and correct the payer address, then resubmit the claim with a new [claim identifier](#claim-identifier). ### Explanation of Payment (EOP) and Standard Paper Remittance (SPR) [#explanation-of-payment-eop-and-standard-paper-remittance-spr] Payers that require paper claim submission usually don't support Electronic Remittance Advice (ERAs). Instead, they typically mail an Explanation of Payment (EOP) for commercial payers or Standard Paper Remittance (SPR) for Medicare and Medicaid back to the provider. This means you won't receive 835 ERAs through Stedi for paper claims. You'll receive paper EOPs or SPRs by mail from the payer. ### PDF proof of mailing [#pdf-proof-of-mailing] After the print-and-mail partner produces the claim proof, Stedi makes a PDF available in the [claims view](https://portal.stedi.com/app/healthcare/claims). The proof represents the printed claim package, including the printed form and any associated attachment pages. You can download the PDF proof from two locations in the Stedi portal: - **Claim timeline**: Click **Download** on the **Printed** row in the claim's timeline. - **Claim details page**: Click **Download printed claim** on the claim details page. ![Printed claim details page](/images/providers/printed-claim-details-page.png) The PDF isn't available immediately at claim submission. You can download the proof only after the print-and-mail partner has printed the claim. To fit the printed form, Stedi standardizes addresses and reformats some fields. The printed claim can differ slightly from the data you submitted. The claim details page shows a note when this happens. ## Best practices [#best-practices] Follow these best practices when submitting paper claims: - **Monitor for 277CA acknowledgments**: Watch for the 277CA indicating either successful mailing or address validation failure. You can [track additional status updates](#track-print-status) (queued and printed) in the Stedi portal claims view. - **Treat mailed 277CA as confirmation**: Use the mailed 277CA as confirmation that the print-and-mail partner sent the package to the payer. - **Investigate address validation failures promptly**: If you receive an address validation failed acknowledgment, [resolve the issue](#resolve-address-validation-failures) and resubmit. If you don't, the claim won't be mailed to the payer. - **Keep PDF proofs**: Download and retain the PDF proof from the Stedi portal for audits, appeals, and payer follow-up. # Submit professional claims - Manual Source: https://www.stedi.com/docs/healthcare/submit-professional-claims-ui You can submit professional claims manually through the Stedi portal. Manual claim submission is useful for testing, QA, and debugging your pipeline. You can also submit claims through the [API](/healthcare/submit-professional-claims), [SFTP](/healthcare/submit-claims-sftp-connection), or as [paper claims](/healthcare/submit-paper-claims). Once you send a claim, Stedi automatically receives and processes 277CA claim acknowledgments and 835 Electronic Remittance Advice (ERA) responses. ## Before sending claims [#before-sending-claims] You may need to complete the following steps before sending claims. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 837 claims through a new clearinghouse. You can check whether a specific payer requires transaction enrollment for 837 claims in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the claim type. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim submission, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. #### Best practices [#best-practices] - Leverage [batch enrollments](/healthcare/create-manage-transaction-enrollments#bulk-csv-import) when onboarding new provider groups or many providers at a time. - For ERAs, you can only be enrolled through one clearinghouse at a time per payer per provider. When your ERA enrollment is accepted through Stedi, you'll stop receiving ERAs through the previous clearinghouse. Every other transaction type accepts enrollment through more than one clearinghouse. ### Coordination of benefits check [#coordination-of-benefits-check] We recommend running a coordination of benefits (COB) check to ensure you submit claims to the correct payer. COB checks can help you determine: - If a patient is covered by more than one health plan - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for more information. ## Testing [#testing] The best way to test professional claims is by submitting them in test mode through the Stedi portal. To submit test claims through the Stedi portal: 1. Click your account name in the side navigation and toggle **Test mode** to **ON**. 2. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click **Submit claim**. 3. Choose either **CMS-1500 form** or **Upload raw X12 file** from the dropdown. When you send a test claim, Stedi doesn't send it to the payer. Instead, we apply our full suite of [edits and repairs](/healthcare/claim-edits-and-repairs) and return a 277CA claim acknowledgment indicating whether the claim was successfully processed. Visit [Test claims workflow](/healthcare/test-claims-workflow) to learn more about testing in the Stedi portal. ## Submit professional claims [#submit-professional-claims] You can submit professional claims either through our interactive claim form or by uploading X12 EDI claim data. ### CMS-1500 claim form [#cms-1500-claim-form] The CMS-1500 form in the portal only supports submitting claims to the patient's **primary health plan**, though you can include information about secondary or tertiary payers if required. To submit claims directly to secondary or tertiary payers, use the portal's X12 EDI upload functionality, or the [API](/healthcare/submit-professional-claims#submit-professional-claims) or [SFTP](/healthcare/submit-claims-sftp-overview) instead. To submit a professional claim: Go to the [claims view](https://portal.stedi.com/app/healthcare/claims), click **Submit claim**, and select **CMS-1500 form** from the dropdown. The submission form is based on the CMS-1500 Claim Form. ![Manual claim submission](/images/providers/manual-claim-submission-form.png) Enter the required information for your professional claim. Notably: | Form section | Instructions and Notes | | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Send | Select whether you want to send the claim **Electronically** or **By mail**.
  • **Electronically**: The claim is transformed into an X12 EDI transaction and routed electronically to the payer.
  • **By mail**: Select this option when you want to send a paper claim to the payer. When you select this option:
    • If the payer exists in Stedi's Payer Network, select it from the **Stedi payer** dropdown.
    • If the payer is not in the network, check **I'm sending to a payer not found in Stedi's network**. Stedi automatically populates the dropdown with the **Print and Mail - All Payers** option.
    Additional fields appear in the **Postage address** section where you must enter the mail-to payer name (the addressee on the physical envelope) and the payer's mailing address (where the claim will be sent).
| | Stedi payer | Select a **Payer** from the dropdown list. Start typing to filter the list. When you select a Medicare or Medicaid payer, Stedi automatically sets **Box 1** (Insurance Type) to match. You can change the value in **Box 1** if needed. | | Patient account number | We strongly recommend submitting a unique value in **Box 26** (Patient acccount number). The identifier should be more complex than a simple sequential number and should be hard to guess. The payer returns this value in related transactions, such as the 277CA and 835 ERA, so you can correlate responses and real-time claim status checks with the original claim.
  • Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim.
  • Use alphanumeric characters only. Avoid special characters, as many payers don't handle them properly.
  • Use random strings. Formats with patient initials or the date of service in them can create duplicates.
| | Line item control numbers | The line item control number is an identifier for each service line in **Box 24** (Service lines) that you can use correlate the original claim with the 835 ERA.
  • By default, Stedi automatically assigns line item control numbers for each service line.
  • To set your own identifiers, click the **Set manual line item control numbers** in the service lines table. Line item control numbers must be 30 characters or less and unique within the claim.
Note that Stedi will automatically reuse the same line item control numbers if you resubmit this claim through the CMS-1500 form. | | Attachments | Submit claim-level attachments in **Box 19b** (Claim attachments) and service-line attachments in **Box 24** (Service lines). Note that you can't add attachments to claims that were already submitted through the portal. To include attachments for those, resubmit the claim with the attachments.
  1. Click **+ Add attachment** (claim-level) or **Add attachment, note or NDC codes** (service-line) to specify the details for an attachment.
  2. Choose the appropriate **Report type** for each attachment.
  3. Choose the appropriate **Transmission code**. If you plan to upload an attachment file, set this to **EL (EDI)**. If you plan to submit the attachment through another method, such as directly through the payer's portal, set this to the appropriate code.
  4. Either enter the **Attachment control number** or click **Upload file** to select the file you want to attach. Supported file types are JPG, PDF, PNG, or TIFF. Each attachment should be 10 MB or less to comply with most payer requirements. You can add up to 10 attachment files at the claim level and up to 10 attachment files for each service line. If you included attachment files, Stedi automatically generates the required attachment control numbers for you.
| | Secondary or tertiary or payer details | Select an option in **Box 11d** (Is there another health benefit plan?).
  • Select **Yes** when submitting a coordination of benefits (COB) claim. **Box 9** (Other insured) appears where you can enter the other payer's information. In **Box 9**, Click **+ Other insured** to add multiple plans (up to two additional plans for secondary and tertiary coverage). Each other insured card includes:
    • **Box 9**: Other Insured's Name _(required)_ and Member ID Number _(required)_
    • **Box 9a**: Other Insured's Policy or Group Number
    • **Box 9d**: Insurance Plan Name or Program Name
    • **Additional details**: Click to expand and enter Other Payer _(required)_, Payer Responsibility Sequence Number Code _(required)_, Other Insured Relationship to Insured _(required)_, and additional optional fields.
  • Select **No** when the patient is covered by a single health plan.
| Stedi checks for errors as you complete the form, including issues that would cause the claim to fail Stedi's claim edits. When you're finished, click **Submit claim**. Stedi doesn't submit the claim until you fix all errors. After submission, the claim appears on the [claims view](https://portal.stedi.com/app/healthcare/claims) within a few minutes. ### X12 EDI upload [#x12-edi-upload] Your X12 EDI claim data must adhere to the [837 Claim: Professional (X222A1)](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-professional-x222a1/01HR60MDFAGCSEJNKY8J38867Y) specification. To manually submit an X12 EDI claim: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Click **Submit claim** and select **Upload raw X12 file**. 3. Do one of the following: - Click **Upload X12 EDI** and select an existing `.edi` file. - Select the transaction type and then paste the X12 EDI content into the text area. You can submit multiple claims in a single file, as long as all claims are 837s of the same type and X12 version. Visit [Bulk claims](#bulk-claims) for details. 4. Set `ISA15` (Interchange Usage Indicator) to `T` (Test Data) or `P` (Production Data), accordingly. Production claims are sent to payers. Test claims aren't sent to payers - Stedi's test clearinghouse processes them and returns test 277CA acknowledgments so you can evaluate your claim processing pipeline. 5. Fix any X12 EDI validation errors that appear after adding the claim content. Stedi highlights errors in red and displays the specification for the claim type you selected on the right side of the screen to make it easier to identify and fix issues. These validations ensure your claim data conforms to the HIPAA specification. Stedi runs additional claim edits on your claim data after submission. 6. Click **Submit claim**. Stedi processes the claim and runs claim edits to identify errors that could lead to a payer rejection. If a claim fails one of Stedi's edits, you'll receive a 277CA claim acknowledgment from Stedi rejecting the claim immediately after submission. This can happen even when the X12 EDI editor showed no errors before submission. If the claim passes all of Stedi's edits, Stedi submits it to the payer. It will appear on the [claims view](https://portal.stedi.com/app/healthcare/claims) within a few minutes. #### Bulk claims [#bulk-claims] You can submit multiple claims in a single X12 EDI file, as long as they are all the same claim type (professional, institutional, or dental) and X12 version. You can submit multiple claims in the same 837 transaction by including multiple instances of the following loops: - `Loop 2000A` (Billing provider) - `Loop 2000B` (Subscriber) - `Loop 2300` (Claim Information) - You can submit up to 1,000 claim loops in each 837 transaction After submission, Stedi separates your bulk 837 transaction into individual claims and sends each claim separately to the payer. This includes multiple claims going to the same payer - all claims within a bulk submission are sent individually to maintain consistency. The following example would produce 12 separate claims (2 x 3 x 2 = 12), each shown individually on the [claims view](https://portal.stedi.com/app/healthcare/claims): - 837 transaction contains information for two billing providers (2x `Loop 2000A`) - Each billing provider has three subscribers (3x `Loop 2000B`) - Each subscriber has two claims (2x `Loop 2300`) Then, you'll typically receive separate 277CA claim acknowledgments for each claim. Each claim will also receive its own test ERA from Stedi's test clearinghouse if the payer was `STEDITEST`. ### 275 claim attachments [#275-claim-attachments] If your claim requires attachments, you can include them through either submission method: - **CMS-1500 form**: Add claim-level attachments in [Box 19b](#cms-1500-claim-form) and service-line attachments in [Box 24](#cms-1500-claim-form). You can upload files directly or enter attachment control numbers. - **X12 EDI upload**: Include the `PWK` segment in `Loop 2300` (claim-level) or `Loop 2400` (service-line) with elements `PWK01`, `PWK02`, and `PWK06` to identify the attachment. Visit [Claim attachments](/healthcare/submit-claim-attachments) to learn more. ## View submitted claims [#view-submitted-claims] In the [claims view](https://portal.stedi.com/app/healthcare/claims), you can review and filter every claim in your account. Toggle test mode to **ON** to review test claims. Click any claim to review its details and download the auto-generated CMS-1500 claim form PDF. ## CMS-1500 claim form PDF [#cms-1500-claim-form-pdf] When you submit a professional claim, Stedi automatically generates a [CMS-1500 claim form](https://www.nucc.org/index.php/1500-claim-form-mainmenu-35) PDF. Visit [CMS-1500 claim form PDF](/healthcare/cms-1500-claim-form-pdf) for instructions about how to download, correct printer settings, and general best practices. # Submit professional claims - API Source: https://www.stedi.com/docs/healthcare/submit-professional-claims You can submit 837P professional claims programmatically through Stedi using JSON or X12 EDI. You can also submit claims [manually through the Stedi portal](/healthcare/submit-professional-claims-ui), through [SFTP](/healthcare/submit-claims-sftp-connection), or as [paper claims](/healthcare/submit-paper-claims). Once you send a claim, Stedi automatically receives and processes 277CA claim acknowledgments and 835 Electronic Remittance Advice (ERA) responses. ## Before sending claims [#before-sending-claims] You may need to complete the following steps before sending claims. ### Transaction enrollment [#transaction-enrollment] [Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit 837 claims through a new clearinghouse. You can check whether a specific payer requires transaction enrollment for 837 claims in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer). To enroll, complete the following steps: 1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider) 2. Submit an enrollment request for the claim type. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment) For most payers that require enrollment for claim submission, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. #### Best practices [#best-practices] - Leverage [batch enrollments](/healthcare/create-manage-transaction-enrollments#bulk-csv-import) when onboarding new provider groups or many providers at a time. - For ERAs, you can only be enrolled through one clearinghouse at a time per payer per provider. When your ERA enrollment is accepted through Stedi, you'll stop receiving ERAs through the previous clearinghouse. Every other transaction type accepts enrollment through more than one clearinghouse. ### Coordination of benefits check [#coordination-of-benefits-check] We recommend running a coordination of benefits (COB) check to ensure you submit claims to the correct payer. COB checks can help you determine: - If a patient is covered by more than one health plan - Whether coverage overlap requires coordination of benefits - Each payer's responsibility for payment (primacy) in coordination of benefits scenarios Visit [Coordination of benefits (COB) checks](/healthcare/coordination-of-benefits) for more information. ## Test claims [#test-claims] Stedi sends all API claim submissions as production claims unless you explicitly designate them as test data. Visit [Test claim workflows](/healthcare/test-claims-workflow) for complete instructions on sending test claims and receiving test responses. ## Submit professional claims [#submit-professional-claims] Call one of the following endpoints to submit 837P professional claims. The JSON endpoints translate your request to X12 837 EDI format before sending to the payer. All endpoints return a synchronous response from Stedi in JSON format, and the payer later responds with a 277CA claim acknowledgment. {/* prettier-ignore-start */} | Endpoint | Description and when to use | | -------- | ----------- | | [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) | Uses a JSON structure that mirrors the CMS-1500 paper form layout, making it intuitive for developers and AI agents. Use cases:
  • Build a CMS-1500 form interface in your application.
  • Build an integration with AI agents that are likely to be more familiar with the CMS-1500 form's structure.
  • Use [event destinations](/healthcare/event-destinations-configure) for claim responses.
  • Use Stedi's [TypeScript or Python SDKs](/healthcare/sdks).
**Not compatible with:** [Webhooks (legacy)](/healthcare/configure-webhooks-legacy), programmatic PDF download, or secondary and tertiary claims. | | [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) | Uses an X12-based JSON structure that maps directly to the 837P transaction. Use cases:
  • Submit claims to secondary or tertiary payers (coordination of benefits).
  • Submit complex claims that include X12 fields not typically available in the CMS-1500 form.
  • Use [webhooks (legacy)](/healthcare/configure-webhooks-legacy) or programmatic PDF download.
| | [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) | Accepts raw X12 837P EDI format. Use cases:
  • You already have X12 claim data from another system.
  • You need complete control over every X12 segment and element.
| {/* prettier-ignore-end */} ### Headers [#headers] When constructing the request, you must include the following information in HTTP headers: - **`Authorization`:** [Generate an API key](https://portal.stedi.com/app/settings/developer/api-keys) to use for authentication. Use a test API key when submitting test claims. - **`Content-Type`:** Set to `application/json`. #### Idempotency key [#idempotency-key] We **strongly recommend** including an [idempotency key](/healthcare/api-reference#idempotency-keys) in the `Idempotency-Key` header to prevent sending duplicate claims to payers in the case of network errors or other intermittent failures. You can safely retry requests with the same idempotency key as many times as necessary within 24 hours after making the first request. ### Body - JSON [#body---json] The information you submit for a claim depends on your use case. Refer to the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint for a complete list of properties. However, all claims require the following high-level information: {/* prettier-ignore-start */} | Information | Description | | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [`purpose`](/healthcare/api-reference/post-create-professional-claim-json#body.purpose) object | The purpose of the submission. Use `CHARGEABLE` for standard fee-for-service claims, which covers most submissions. | | [`payer`](/healthcare/api-reference/post-create-professional-claim-json#body.payer) object | Information about the payer, including the payer ID and business name. The payer ID can be the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. | | [`insured`](/healthcare/api-reference/post-create-professional-claim-json#body.insured) object | Information about the insured person (policyholder). If the patient is a dependent with their own unique member ID, include their information here and omit the `patient` object. You can check whether the dependent has a unique member ID by submitting an [Eligibility Check](/healthcare/api-reference/post-eligibility-check) to the payer. | | [`patient`](/healthcare/api-reference/post-create-professional-claim-json#body.patient) object (conditional) | Information about the patient when they are someone other than the insured. See [Patient versus insured](#patient-versus-insured) for details. | | [`encounter`](/healthcare/api-reference/post-create-professional-claim-json#body.encounter) object | Information about the medical encounter, such as diagnosis codes. | | [`serviceLines`](/healthcare/api-reference/post-create-professional-claim-json#body.serviceLines) array | Information about each individual service line included in the claim, such as procedure codes, charges, and dates of service. | | [`authorization`](/healthcare/api-reference/post-create-professional-claim-json#body.authorization) object | Signature and assignment-of-benefits indicators for the claim, covering whether the provider has the patient's and insured's authorizations on file and whether the provider accepts the payer's terms. | | [`submitter`](/healthcare/api-reference/post-create-professional-claim-json#body.submitter) object | Information about the entity submitting the claim. This can be either an individual or an organization, such as a doctor, hospital, or billing service. | | [`billing`](/healthcare/api-reference/post-create-professional-claim-json#body.billing) object | Information about the billing provider and claim details, including the [patient control number](#patient-control-number), total charge, and billing provider details such as [NPI](/healthcare/national-provider-identifier). | {/* prettier-ignore-end */} The information you submit for a claim depends on your use case. Refer to the [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) endpoint for a complete list of properties. However, all claims require the following high-level information: {/* prettier-ignore-start */} | Information | Description | | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [`tradingPartnerServiceId`](/healthcare/api-reference/post-healthcare-claims#body.tradingPartnerServiceId) | This is the payer ID. You can send requests using the primary payer ID, the Stedi payer ID, or any alias listed in the payer record. If you don't already have payer IDs you use today, we recommend using the primary Payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. | | [`tradingPartnerName`](/healthcare/api-reference/post-healthcare-claims#body.tradingPartnerName) | This is the payer's business name, like Cigna or Aetna. | | [`submitter`](/healthcare/api-reference/post-healthcare-claims#body.submitter) object | Information about the entity submitting the claim. This can be either an individual or an organization, such as a doctor, hospital, or insurance company. | | [`receiver`](/healthcare/api-reference/post-healthcare-claims#body.receiver) object | Information about the payer, such as an insurance company or government agency. | | [`subscriber`](/healthcare/api-reference/post-healthcare-claims#body.subscriber) and, or [`dependent`](/healthcare/api-reference/post-healthcare-claims#body.dependent) objects | Information about the patient who received the medical services. Note that if a dependent has their own, unique member ID for their health plan, you must submit their information in the `subscriber` object and omit the `dependent` object from the request. You can check whether the dependent has a unique member ID by submitting an [Eligibility Check](/healthcare/api-reference/post-eligibility-check) to the payer for the dependent. The payer returns the member ID in the `dependents.memberId` field, if present. | | [`claimInformation`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation) object | Information about the claim, such as the [patient control number](#patient-control-number), claim charge amount, and place of service code. It also includes information about each individual service line included in the claim. | | [`billing`](/healthcare/api-reference/post-healthcare-claims#body.billing) object | Information about the billing provider, such as the [NPI](/healthcare/national-provider-identifier), taxonomy code, and organization name. | {/* prettier-ignore-end */} #### Patient Control Number [#patient-control-number] You must submit a Patient Control Number (PCN) with each claim. The payer returns this value in related transactions, such as the 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA), so you can correlate responses and real-time claim status checks with the original claim. - **Professional Claim JSON:** [`billing.patientControlNumber`](/healthcare/api-reference/post-create-professional-claim-json#body.billing.patientControlNumber) - **837P JSON (Legacy):** [`claimInformation.patientControlNumber`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.patientControlNumber) When assigning a PCN, follow these best practices: - Use a unique PCN for each claim. The identifier should be more complex than a simple sequential number and should be hard to guess. - Use random strings. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters available in the [basic character set](#character-set) to create a strong, unique 17-character PCN for each claim. - Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](#character-restrictions), and avoid special characters that are only available in the extended character set. Payers are permitted to return data using the basic character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - Treat PCN values as case-insensitive when matching transactions, even if the submitted value included both lower and uppercase characters. #### Service line identification [#service-line-identification] A claim can contain multiple service lines. Since the payer may accept, reject, or pay a subset of those lines, you can receive an 835 ERA that references a patient control number but only pertains to some of the service lines. You can set a provider control number as a unique identifier for each service line in your claim submission. This value appears in the 277CA claim acknowledgment and 835 ERA as the `lineItemControlNumber`, allowing you to correlate these responses to specific service lines from the original claim. If you don't set the provider control number for a service line, Stedi uses a random UUID. - **Professional Claim JSON:** [`serviceLines[].lineItemControlNumber`](/healthcare/api-reference/post-create-professional-claim-json#body.serviceLines.lineItemControlNumber) - **837P JSON (Legacy):** [`claimInformation.serviceLines[].providerControlNumber`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.providerControlNumber) #### Patient versus insured [#patient-versus-insured] This section applies to the [Create Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint. The insured (subscriber) is the person who holds the insurance policy. The patient is the person who received care. These may be the same person or different people: - **When the patient is the insured**: Only include the `insured` object. Leave the `patient` object empty. - **When the patient is a dependent**: Include both the `insured` object (with the policyholder's information) and the `patient` object (with the dependent's information). **Special case - dependents with their own member ID** If a dependent has their own unique member ID assigned by the payer, treat them as the insured for claim submission purposes. Include their information in the `insured` object and omit the `patient` object. To check whether a dependent has a member ID, submit an [eligibility check](/healthcare/api-reference/post-eligibility-check) to the payer. The payer returns the dependent's member ID in the `dependents[].memberId` property in the response, if present. #### Conditional requirements [#conditional-requirements] Note that objects marked as **required** are required for all requests, while others are conditionally required depending on the circumstances. When you include a conditionally required object, you must include all of its required properties. - **Professional Claim JSON:** For example, you must always include the `insured` object in your request, but you only need to include the `patient` object when the patient is someone other than the insured. - **837P JSON (Legacy):** For example, you must always include the `subscriber` object in your request, but you only need to include the `supervising` object when a physician supervises the rendering provider. #### 275 claim attachments [#275-claim-attachments] If the claim requires attachments, you must include additional details about the attachments in the appropriate objects: **Professional Claim JSON** - Attachments for entire claim: [`encounter.attachments[]`](/healthcare/api-reference/post-create-professional-claim-json#body.encounter.attachments) - Attachments for a specific service line: [`serviceLines[].attachments[]`](/healthcare/api-reference/post-create-professional-claim-json#body.serviceLines.attachments) **837P JSON (Legacy)** - Attachments for entire claim: [`claimInformation.claimSupplementalInformation.reportInformation`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimSupplementalInformation.reportInformation) or [`claimInformation.claimSupplementalInformation.reportInformations`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimSupplementalInformation.reportInformations) (multiple attachments) - Attachments for a specific service line: [`claimInformation.serviceLines[].serviceLineSupplementalInformation`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.serviceLines.serviceLineSupplementalInformation) Visit [Claim attachments](/healthcare/submit-claim-attachments) for complete instructions. ### Body - X12 EDI [#body---x12-edi] You must send a payload in [837 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/health-care-claim-professional-x222a1/01HR60MDFAGCSEJNKY8J38867Y). Note the following requirements and behavior when sending professional claims through the raw X12 endpoint. ```json { "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~NM1*41*2*Test Data Health Services, Inc.*****46*123435~PER*IC**TE*5552223333~NM1*40*2*Cigna*****46*6400~HL*1**20*1~PRV*BI*PXC*2084P0800X~NM1*85*2*Therapy Associates*****XX*1999999984~N3*123 Some St*Floor 1~N4*A City*NY*123450000~REF*EI*123456789~PER*IC*Test Data Health Services, Inc.*TE*5553334444~HL*2*1*22*0~SBR*P*18*3335555******CI~NM1*IL*1*Anon*John****MI*U7777788888~N3*2222 Random St~N4*A City*NY*123450000~DMG*D8*20000101*M~NM1*PR*2*Cigna*****PI*6400~CLM*123456789*109.2***02>B>1*Y*A*Y*Y~HI*ABK>F1111~NM1*77*2*Smith Associates~N3*1234 Other St~N4*A City*NY*123450000~LX*1~SV1*HC>90837>95*109.2*UN*1***1~DTP*472*D8*20240101~REF*6R*111222333~SE*29*0001~GE*1*39~IEA*1*000000039~" } ``` #### Envelope and header [#envelope-and-header] Stedi generates its own `ISA` and `GS` headers and `IEA` and `GE` trailers before sending your claim to the payer. You can submit your claim to Stedi with any values in these segments, as long as they conform to the X12 EDI specification. However, you must set `ST03` (Implementation Guide Version Name) to `005010X222A1`. #### Payer ID [#payer-id] You must submit a payer identifier in `Loop 2010BB` (Payer Name) `NM109` so Stedi can route your claim to the correct payer. This identifier **must** be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). If you don't already have payer IDs you use today, we recommend using the primary Payer ID. You must include leading `0` characters in payer IDs. For example, use `00540` for SISCO, not `540`. #### `CLM01` (Patient Control Number) [#clm01-patient-control-number] We **strongly recommend** submitting a unique value for `Loop 2300` (Claim Information) `CLM01` (Patient Control Number). The payer returns this value in related transactions, such as the 277CA claim acknowledgment and 835 Electronic Remittance Advice (ERA), so you can correlate responses and real-time claim status checks with the original claim. When assigning a PCN, follow these best practices: - Use a unique PCN for each claim. The identifier should be more complex than a simple sequential number and should be hard to guess. - Use random strings. Formats with patient initials or the date of service in them can create duplicates. We recommend using [nanoid](https://www.npmjs.com/package/nanoid) or a similar library configured with the characters available in the [basic character set](#character-set) to create a strong, unique 17-character PCN for each claim. - Keep it 17 characters or less. Some payers cut off values longer than 17 characters in ERAs and claim acknowledgments, which makes it hard to match them with the original claim. - Use only characters available in the [basic character set](#character-restrictions), and avoid special characters that are only available in the extended character set. Payers are permitted to return data using the basic character set. Using other characters may result in data loss or mismatches when correlating claims with responses. - Treat PCN values as case-insensitive when matching transactions, even if the submitted value included both lower and uppercase characters. #### Claim identifier [#claim-identifier] `Loop 2300 REF02` (Claim Identifier for Transmission Intermediaries) has different usage rules depending on your role: - **Providers:** Don't include `Loop 2300 REF02` when `REF01` = `D9` in your claim submission. It's reserved for clearinghouses and intermediaries. You can use `Loop 2300 CLM01` (Patient Control Number) to correlate claims with responses instead. - **Clearinghouses and intermediaries:** You can optionally include `REF*D9` in your 837 submissions. Stedi always returns this value in `Loop 2200D REF*D9` of 277CA claim acknowledgments, allowing you to match these responses to the claim. #### Service line identification [#service-line-identification-1] A claim can contain multiple service lines. Since the payer may accept, reject, or pay a subset of those lines, you can receive an 835 response that references a patient control number, but only pertains to some of the service lines. However, the line item control number serves as a unique identifier for each service line in your claim submission. - You can set the line item control number in `Loop 2400 REF02`, when `REF01` = `6R`. The line item control number appears in the 277CA and 835 ERA responses as the `lineItemControlNumber`, allowing you to correlate these responses to specific service lines from the original claim. - If you don't set the line item control number for a service line, Stedi uses a ULID. #### 275 claim attachments [#275-claim-attachments-1] If the claim requires attachments, you must include specific elements to identify the attachment in either `Loop 2300` (claim-level attachments) or `Loop 2400` (service line attachments): - `PWK01` - Attachment Report Type Code. This code identifies the type of report or document you plan to submit as an attachment. Visit [Code lists](/healthcare/claims-code-lists#attachment-report-type-codes) for a complete list of valid codes. - `PWK02` - Attachment Transmission Code. Set to `EL` when submitting attachments through Stedi. This indicates you send the attachment in a separate, electronic 275 transaction. - `PWK06` - Attachment Control Number. A unique identifier for the attachment. The payer uses this value to match the attachment to the claim. We recommend using a `ULID` or `UUID` of up to 50 characters. Only include attachment details when you plan to submit an attachment. Some payers stall claim processing indefinitely if you include a `PWK` segment without sending an associated attachment. After submitting the claim, you must submit the attachment through the [Submit Claim Attachment (275) X12 EDI](/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12) endpoint. The attachment control number in `Loop 2000A TRN02` must match the `PWK06` value from the claim. Visit [Claim attachments](/healthcare/submit-claim-attachments) for complete instructions. ### Sample request and response [#sample-request-and-response] The following examples send a professional claim through each endpoint. All endpoints return a JSON response from Stedi containing information about the claim submission and whether it was successful. #### Professional Claim JSON [#professional-claim-json] The following example sends a professional claim through the [Create Professional Claim (CMS-1500) JSON](/healthcare/api-reference/post-create-professional-claim-json) endpoint. The endpoint returns an HTTP `201` whether Stedi's edits pass or fail. Monitor the response shape to determine success or failure. The response contains summary information from Stedi about the claim submission: - **`claimId`**: A unique identifier for the claim within Stedi. This ID stays the same throughout the claim's entire lifecycle. For example, the claim ID is the same for the initial submission and any resubmissions. This is how Stedi links a particular claim to responses, such as 277CA claim acknowledgments. - **`submissionId`**: A unique identifier for a specific submission of a claim within Stedi. Stedi generates a submission ID for the initial submission and then a new submission ID for every resubmission of the same claim. - **`errors`** (optional): An array of errors when the claim fails one or more of Stedi's [edits and repairs](/healthcare/claim-edits-and-repairs). When present, Stedi stores the claim with [status `REJECTED`](/healthcare/claims-view#claim-processing-status) and never sends it to the payer. When absent, the claim passed Stedi's edits, and Stedi sent it to the payer. The Create Professional Claim JSON endpoint is available in the Stedi TypeScript and Python SDKs. Visit [SDKs](/healthcare/sdks) for installation and usage details. ```bash curl --request POST \ --url https://claims.us.stedi.com/2025-03-07/professional-claim-submissions \ --header 'Authorization: Key ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: 0e1f9a8d-6c5b-4a3f-9d2e-7b8c1a0f4e6d' \ --data '{ "purpose": "CHARGEABLE", "payer": { "id": "60054", "name": { "organization": "Aetna" } }, "insured": { "memberId": "W123456789", "name": { "person": { "firstName": "June", "lastName": "Doe" } }, "dateOfBirth": "1990-01-01", "gender": "FEMALE", "insuranceType": "OTHER", "paymentResponsibilityLevelCode": "PRIMARY", "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" } }, "patient": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1900-02-02", "gender": "MALE", "name": { "person": { "firstName": "Liam", "lastName": "Doe" } }, "relationshipToInsured": "CHILD" }, "otherInsured": [ { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerGeneratedPatientSignature": false }, "claimFilingIndicator": "BLUE_CROSS_BLUE_SHIELD", "memberId": "BCBS-IL-554433221", "name": { "person": { "firstName": "Michael", "lastName": "Doe" } }, "otherPayer": { "id": { "payerId": "00621" }, "name": { "organization": "Blue Cross Blue Shield of Illinois" } }, "planName": "BCBS PPO", "policyOrGroupNumber": "BCBS-GRP-3344", "relationshipToInsured": "SPOUSE", "responsibilityLevel": "SECONDARY" } ], "encounter": { "attachments": [ { "attachmentControlNumber": "PWK-2026-0001", "reportTypeCode": "PROGRESS_REPORT", "transmissionCode": "ELECTRONICALLY_ONLY" } ], "claimCodes": [ "AV" ], "claimNote": { "additionalInformation": "Patient presented with persistent cough and bronchospasm; treated in office." }, "clinicalDates": { "hospitalization": { "end": "2026-03-06", "start": "2026-03-04" }, "initialTreatment": "2026-03-03", "onsetOfCurrentIllness": "2026-03-02", "unableToWork": { "end": "2026-03-10", "start": "2026-03-03" } }, "patientCondition": { "isAutoAccidentRelated": false, "isEmploymentRelated": false, "isOtherAccidentRelated": false }, "primaryDiagnosisCode": "J0190", "priorReferringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "John", "lastName": "Doe" } } }, "referenceNumbers": { "clia": "14D2089999", "priorAuthorization": "PA-2026-11111", "referral": "REF-4321" }, "referringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "resubmission": { "code": "REPLACEMENT_OF_PRIOR_CLAIM", "originalReferenceNumber": "CLM-ORIG-998877" }, "supervisingProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Smith" } } } }, "serviceLines": [ { "procedureCode": { "code": "99213" }, "lineItemChargeAmount": "100.00", "placeOfService": "11", "datesOfService": { "start": "2026-03-03", "end": "2026-03-03" }, "diagnosisCodes": [ "J0190" ], "units": "1" } ], "authorization": { "providerSignature": "ON_FILE", "providerAcceptsAssignment": "ASSIGNED", "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES" }, "submitter": { "name": { "organization": "Test Submitter" }, "etin": "TEST001", "contact": { "phoneNumber": "5555551234" } }, "billing": { "billingProvider": { "name": { "organization": "Test Provider" }, "identifiers": { "npi": "1999999984", "taxonomyCode": "207Q00000X" }, "address": { "addressLine1": "123 St", "city": "City", "state": "IL", "postalCode": "12345" } }, "taxId": { "ein": "123456789" }, "patientControlNumber": "TEST-004", "totalCharge": "100.00" } }' ``` ```json { "claimId": "clm_01K6XFP3TZ8RA9X84963NMW40M", "submissionId": "sbm_01K6XFP3TZ8RA9X84963NMW40N" } ``` ```json { "claimId": "clm_5RPQXX5FM3A83RMYPQ5X2YW7KX", "submissionId": "sbm_7K4JDJKN3ABBH9MCAW6NE86DYV", "errors": [ { "description": "Invalid NPI. The Billing Provider NPI of 1730289013 is invalid. The National Provider Identifier must be valid with 10 digits and no prefixes or dashes. Correct and resubmit." }, { "description": "Invalid Taxonomy Code. The taxonomy code for Billing Provider does not meet the required format. Taxonomy codes must be 10 uppercase alphanumeric characters ending with 'X'. Correct and resubmit." } ] } ``` #### 837P JSON (Legacy) [#837p-json-legacy] The following example sends a professional claim through the [Professional Claims (837P) JSON - Legacy](/healthcare/api-reference/post-healthcare-claims) endpoint. The response contains summary information from Stedi about the claim submission and whether it was successful. The response also includes an initial [277CA claim acknowledgment](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) from Stedi in the `x12` property, which indicates whether the claim passed Stedi's claim edits. {/* schema:ClaimsSubmissionRequestContent */} {/* replace::1234567890 */} {/* replace::1234567890 */} ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/submission \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: ' \ --data '{ "usageIndicator": "T", "tradingPartnerServiceId": "62308", "submitter": { "organizationName": "Test Data Health Services, Inc.", "submitterIdentification": "", "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5552223333" } }, "receiver": { "organizationName": "Cigna" }, "subscriber": { "memberId": "U7777788888", "paymentResponsibilityLevelCode": "P", "subscriberGroupName": "Cigna", "firstName": "John", "lastName": "Anon", "gender": "M", "dateOfBirth": "20000101", "groupNumber": "3335555", "address": { "address1": "2222 Random St", "city": "A City", "state": "NY", "postalCode": "123450000" } }, "billing": { "providerType": "BillingProvider", "npi": "", "employerId": "123456789", "taxonomyCode": "2084P0800X", "organizationName": "Therapy Associates", "address": { "address1": "123 Some St", "address2": "Floor 1", "city": "A City", "state": "NY", "postalCode": "123450000" }, "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5553334444" } }, "claimInformation": { "claimFilingCode": "CI", "patientControlNumber": "", "claimChargeAmount": "109.20", "placeOfServiceCode": "02", "claimFrequencyCode": "1", "signatureIndicator": "Y", "planParticipationCode": "A", "benefitsAssignmentCertificationIndicator": "Y", "releaseInformationCode": "Y", "healthCareCodeInformation": [ { "diagnosisTypeCode": "ABK", "diagnosisCode": "F1111" } ], "serviceFacilityLocation": { "organizationName": "Smith Associates", "address": { "address1": "1234 Other St", "city": "A City", "state": "NY", "postalCode": "123450000" }, "npi": "1999999984" }, "serviceLines": [ { "serviceDate": "20240101", "professionalService": { "procedureIdentifier": "HC", "procedureCode": "90837", "procedureModifiers": [ "95" ], "lineItemChargeAmount": "109.20", "measurementUnit": "UN", "serviceUnitCount": "1", "compositeDiagnosisCodePointers": { "diagnosisCodePointers": [ "1" ] } }, "providerControlNumber": "111222333", "renderingProvider": { "providerType": "RenderingProvider", "npi": "", "taxonomyCode": "111YP2000X", "firstName": "Jane", "lastName": "Smith" } } ] }, "tradingPartnerName": "Cigna" }' ``` ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/raw-x12-submission \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: ' \ --data '{ "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~NM1*41*2*Test Data Health Services, Inc.*****46*123435~PER*IC**TE*5552223333~NM1*40*2*Cigna*****46*62308~HL*1**20*1~PRV*BI*PXC*2084P0800X~NM1*85*2*Therapy Associates*****XX*1999999984~N3*123 Some St*Floor 1~N4*A City*NY*123450000~REF*EI*123456789~PER*IC*Test Data Health Services, Inc.*TE*5553334444~HL*2*1*22*0~SBR*P*18*3335555******CI~NM1*IL*1*Anon*John****MI*U7777788888~N3*2222 Random St~N4*A City*NY*123450000~DMG*D8*20000101*M~NM1*PR*2*Cigna*****PI*62308~CLM*123456789*109.2***02>B>1*Y*A*Y*Y~HI*ABK>F1111~NM1*77*2*Smith Associates~N3*1234 Other St~N4*A City*NY*123450000~LX*1~SV1*HC>90837>95*109.2*UN*1***1~DTP*472*D8*20240101~REF*6R*111222333~SE*29*0001~GE*1*39~IEA*1*000000039~" }' ``` {/* schema:ClaimsSubmissionResponseContent */} ```json { "status": "SUCCESS", "controlNumber": "1", "tradingPartnerServiceId": "62308", "claimReference": { "correlationId": "01KHC8Y4HNP0GVQ5NSVTPZBC0F", "patientControlNumber": "111222333", "timeOfResponse": "2026-02-13T19:51:51.496Z", "payerId": "62308", "formatVersion": "5010", "rhclaimNumber": "01KHC8Y4HNP0GVQ5NSVTPZBC0F", "serviceLines": [ { "lineItemControlNumber": "111222333" } ] }, "meta": { "traceId": "d61ca4bc-e9e7-4d0f-93d0-6f7ff810b0e6" }, "payer": { "payerName": "Cigna", "payerId": "62308" }, "x12": "ISA*00* *00* *ZZ*STEDITEST *ZZ*574183004559 *260213*1951*^*00501*980180479*0*T*`~GS*HN*STEDITEST*574183004559*20260213*195151*1*X*005010X214~ST*277*0001*005010X214~BHT*0085*08*01KHC8YJE8EY6A5HFR00Z5H305*20260213*195151*TH~HL*1**20*1~NM1*AY*2*STEDI INC*****46*117151744~TRN*1*01KHC8YJE8EY6A5HFR00Z5H305~DTP*050*D8*20260213~DTP*009*D8*20260213~HL*2*1*21*1~NM1*41*2*Test Data Health Services, Inc.*****46*123456~TRN*2*01KHC8Y4HNP0GVQ5NSVTPZBC0F~STC*A0`17`AY*20260213*WQ*109.2~QTY*90*1~AMT*YU*109.2~HL*3*2*19*1~NM1*85*2*Therapy Associates*****XX*1234567890~TRN*1*0~REF*TJ*123456789~QTY*QA*1~AMT*YU*109.2~HL*4*3*PT*0~NM1*QC*1*Anon*John****MI*U7777788888~TRN*2*111222333~STC*A1`20*20260213*WQ*109.2~DTP*472*RD8*20240101-20240101~SE*25*0001~GE*1*1~IEA*1*980180479~", "httpStatusCode": "200 OK" } ``` #### 837P Raw X12 [#837p-raw-x12] The following example sends a professional claim through the [Professional Claims (837P) Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) endpoint. The response contains summary information from Stedi about the claim submission and whether it was successful. The response also includes an initial [277CA claim acknowledgment](/healthcare/claim-responses-overview#277ca-claim-acknowledgment) from Stedi in the `x12` property, which indicates whether the claim passed Stedi's claim edits. ```bash curl --request POST \ --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/raw-x12-submission \ --header 'Authorization: ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: ' \ --data '{ "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~NM1*41*2*Test Data Health Services, Inc.*****46*123435~PER*IC**TE*5552223333~NM1*40*2*Cigna*****46*6400~HL*1**20*1~PRV*BI*PXC*2084P0800X~NM1*85*2*Therapy Associates*****XX*1999999984~N3*123 Some St*Floor 1~N4*A City*NY*123450000~REF*EI*123456789~PER*IC*Test Data Health Services, Inc.*TE*5553334444~HL*2*1*22*0~SBR*P*18*3335555******CI~NM1*IL*1*Anon*John****MI*U7777788888~N3*2222 Random St~N4*A City*NY*123450000~DMG*D8*20000101*M~NM1*PR*2*Cigna*****PI*6400~CLM*123456789*109.2***02>B>1*Y*A*Y*Y~HI*ABK>F1111~NM1*77*2*Smith Associates~N3*1234 Other St~N4*A City*NY*123450000~LX*1~SV1*HC>90837>95*109.2*UN*1***1~DTP*472*D8*20240101~REF*6R*111222333~SE*29*0001~GE*1*39~IEA*1*000000039~" }' ``` ```json { "claimReference": { "correlationId": "01J1M588QT2TAV2N093GNJ998T", "formatVersion": "5010", "patientControlNumber": "123456789", "payerId": "6400", "rhClaimNumber": "01J1M588QT2TAV2N093GNJ998T", "serviceLines": [ { "lineItemControlNumber": "1" } ], "timeOfResponse": "2024-07-10T22:05:32.203Z" }, "controlNumber": "000000039", "httpStatusCode": "200 OK", "meta": { "traceId": "b727b8e7-1f00-4011-bc6e-e41444d406d8" }, "payer": { "payerID": "6400", "payerName": "Cigna" }, "status": "SUCCESS", "tradingPartnerServiceId": "6400" } ``` ### Character restrictions [#character-restrictions] Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause errors. The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included. The following special characters are included: ![Basic special characters](/images/basic-special-characters.png) The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`. The following additional special characters are included: ![Extended special characters](/images/extended-special-characters-healthcare.png) In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, `^`, and `>`. X12 doesn't support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly. - **JSON endpoints:** Don't include delimiter characters anywhere in your request data. - **837P Raw X12 endpoint:** You can use these characters as delimiters, but not in the body of the request data. ### Concurrency and rate limits [#concurrency-and-rate-limits] Professional claim submission endpoints share both a rate limit pool and a concurrency pool with other claim endpoints. For more information, visit [Limits](/healthcare/api-reference#limits). ### Recommended API clients [#recommended-api-clients] You may want to use an API client to make testing and debugging easier. We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can't turn this feature off without impractical workarounds. Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead. ## View submitted claims [#view-submitted-claims] In the [claims view](https://portal.stedi.com/app/healthcare/claims), you can review and filter every claim in your account. Toggle **Test mode** in the side navigation to view test or production claims. Click any claim to review its details and download the auto-generated CMS-1500 claim form PDF. ## Submit to a secondary or tertiary payer [#submit-to-a-secondary-or-tertiary-payer] The Create Professional Claim JSON endpoint doesn't support coordination of benefits. To submit claims to secondary and tertiary payers, you must use the [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims) endpoint or the [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) endpoint. In [coordination of benefits (COB)](/healthcare/coordination-of-benefits) scenarios, you'll need to submit a claim to multiple payers. You must set the `subscriber.paymentResponsibilityLevelCode` to either `S` (when submitting to the secondary payer) or `T` (when submitting to the tertiary payer). You must also include the following information about how prior payers have adjudicated the claim. For example, if a patient's private insurance plan (primary payer) adjusted the requested reimbursement amount and paid for its portion of the services, you must include that information in the claim you submit to Medicare (secondary payer). You can find these details in 835 ERA responses from prior payers. ### Claim information [#claim-information] You must submit one object in the `claimInformation.otherSubscriberInformation` array for each prior payer. Supply all the required properties in the object plus the following additional information: - `claimLevelAdjustments`: Provide if the prior payer made adjustments at the claim level. Codes and their associated amounts must come from ERAs sent by the prior payers. You can find these codes in the ERA's [`transactions[].detailInfo[].paymentInfo[].claimAdjustments`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimAdjustments) array. - `medicareInpatientAdjudication` (institutional claims only): You must include this if Medicare was one of the prior payers and reported inpatient adjudication information on the ERA. - `medicareOutpatientAdjudication`: You must include this if Medicare was one of the prior payers and reported outpatient adjudication information on the ERA. - `otherPayerName.otherPayerAdjudicationOrPaymentDate`: The date the payer adjudicated or paid the claim. You must provide this if you aren't providing a value in the `claimInformation.serviceLines[].lineAdjudicationInformation[].adjudicationOrPaymentDate` property. - `payerPaidAmount`: This is the total amount in dollars the payer paid on this claim. ### Service line information [#service-line-information] You must submit `serviceLines[].lineAdjudicationInformation` objects when the prior payers provided line-level adjudication information. Submit one object for each prior payer. For each object, you should include the following properties. - `adjudicationOrPaymentDate`: The date the payer adjudicated or paid the claim. Don't include this if you're providing a date in the `otherPayerName.otherPayerAdjudicationOrPaymentDate` property. - `claimAdjustmentInformation`: You can find this information in the ERA's [`transactions[].detailInfo[].paymentInfo[].serviceLines[].serviceAdjustments`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.serviceLines.serviceAdjustments) array. - `otherPayerPrimaryIdentifier`: The identifier for the other payer. This value should match the identifier you supplied for the payer in the `claimInformation.otherSubscriberInformation[].otherPayerName.otherPayerIdentifier` property. - `procedureCode`: The adjudicated procedure code for the service line. - `serviceIdQualifier`: A code identify the type of procedure code. Visit [Claims code lists](/healthcare/claims-code-lists#composite-medical-procedure---product-or-service-id-qualifier-codes) for a complete list. - `serviceLinePaidAmount`: The total amount in dollars the prior payer paid on this service line. - `paidServiceUnitCount`: The number of paid units for the service line. When paid units are not present on the remittance advice, use the original billed units. - `remainingPatientLiability`: The amount of the service line the patient is responsible for paying. ## Claim Filing Indicator Code [#claim-filing-indicator-code] The Claim Filing Indicator Code indicates the type of health insurance plan you're billing, such as Medicare, Medicaid, or commercial insurance. - **[Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json)**: Set [`insured.insuranceType`](/healthcare/api-reference/post-create-professional-claim-json#body.insured.insuranceType) to the plan type. Professional Claim JSON uses a simplified subset of values compared to X12 (`MEDICARE`, `MEDICAID`, `TRICARE`, `CHAMPVA`, `FECA_BLK_LUNG`, `OTHER`). - **[837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims)**: Set [`claimInformation.claimFilingCode`](/healthcare/api-reference/post-healthcare-claims#body.claimInformation.claimFilingCode) using standard X12 codes such as `MA` (Medicare Part A), `MC` (Medicaid), or `CI` (Commercial Insurance Co.). - **[837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12)**: Set `CLM05-01` (Claim Filing Indicator Code) using standard X12 codes such as `MA` (Medicare Part A), `MC` (Medicaid), or `CI` (Commercial Insurance Co.). Choosing the correct claim filing indicator code is important for successful claim submission. Visit the [Claims code lists](/healthcare/claims-code-lists#choosing-the-right-code) documentation for best practices for selecting the appropriate code. ## Set a claim's correlation ID [#set-a-claims-correlation-id] A claim's correlation ID is a business identifier that you can use to track and manage claims. - [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json) doesn't include a correlation ID in the response. - When you submit claims through [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims), Stedi generates the correlation ID for you, and this value is unique for each claim. - When you submit claims through [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12) or an [SFTP connection](/healthcare/submit-claims-sftp-connection), you can specify your own correlation ID in the `BHT03` element. This lets you use the same value for multiple claims if needed. ## CMS-1500 claim form PDF [#cms-1500-claim-form-pdf] Stedi automatically generates a PDF [CMS-1500 claim form](https://www.nucc.org/index.php/1500-claim-form-mainmenu-35) for each professional claim you submit. You can retrieve PDFs through the Stedi portal or programmatically through the API. Visit [CMS-1500 Claim Form PDF](/healthcare/cms-1500-claim-form-pdf) for instructions on retrieving PDFs, information about how to structure claim submissions for optimal PDF generation, printer settings, and general best practices. # Support Source: https://www.stedi.com/docs/healthcare/support Contact Stedi support with a ticket in the Stedi portal, or by email, Slack, or Microsoft Teams. We encourage you to contact us with questions, feedback, or for help using our products. ## Submit a ticket in the Stedi portal [#submit-a-ticket-in-the-stedi-portal] You can submit a support ticket from any page in the Stedi portal: {/* vale Stedi.LatinAbbreviations = NO */} 1. Click **Support** at the bottom of the side navigation. 2. Describe your question or issue. You can also add a subject. 3. Confirm that your request doesn't include Protected Health Information (PHI). 4. Click **Send ticket (via email)**. {/* vale Stedi.LatinAbbreviations = YES */} Stedi includes the URL of the page you're viewing with your ticket, and our team replies by email. To track your tickets, click **Open support portal**. ## Contact us by email, Slack, or Teams [#contact-us-by-email-slack-or-teams] We make every effort to respond as soon as possible, particularly to urgent requests. For both general support requests and billing inquiries, email [support@stedi.com](mailto:support@stedi.com). You can also email us to set up a dedicated Slack or Teams channel. When you report an issue, please include the following: - A description of the issue, including the current behavior and the expected behavior - Your Stedi account ID - Screenshots showing the problem, when possible Don't include Protected Health Information (PHI) in support requests, including in screenshots. # Supported payers Source: https://www.stedi.com/docs/healthcare/supported-payers Find which payers Stedi supports, which transactions each one accepts, and whether they require transaction enrollment. Stedi supports thousands of medical, dental, and vision payers. You can get details about all supported payers through our interactive Payer Network, our Payers API, or the Stedi Agent. ## Find payer details [#find-payer-details] You can use the following methods to determine: - The transaction types supported for each payer and whether [transaction enrollment](/healthcare/transaction-enrollment) is required. - The payer IDs you need to send transactions through Stedi. - Which payers support medical, dental, and vision use cases. - The states and territories where each payer operates. ### Payer Network [#payer-network] Visit the [Payer Network](https://www.stedi.com/healthcare/network) to review a searchable list of supported payers. ![Payer Network search](/images/providers/payer-network-payer-details.png) ### Payers API [#payers-api] You can use the following endpoints to search for payers and retrieve their details. - [Retrieve payer](/healthcare/api-reference/get-payer): Retrieve a specific payer record using the [Stedi payer ID](/healthcare/supported-payers#stedi-payer-id), a unique identifier Stedi assigns to each payer that will never change - [List Payers JSON](/healthcare/api-reference/get-payers): List all supported payers in JSON format - supports pagination - [List Payers CSV](/healthcare/api-reference/get-payers-csv): List all supported payers in CSV format - [Search Payers](/healthcare/api-reference/get-search-payers): Search for payers by name, payer ID, or payer ID alias - supports fuzzy matching. Stedi returns results in JSON format. These endpoints are especially useful when you want to embed payer details or search capabilities into your system or application. For example, you can use the Search Payers endpoint to allow patients to search for and select their insurance provider in a patient intake form. Learn more about how to [use payer IDs in applications](/healthcare/supported-payers#use-payer-ids-in-applications). If you store payer details in your own system, [refresh them at least once a day](/healthcare/supported-payers#refresh-payer-data). ### Stedi Agent [#stedi-agent] You can chat with the Stedi Agent to get information about supported payers. To use it, you must be at least an [Operator](/healthcare/account-settings#members) role within your Stedi account. To start chatting with the Stedi Agent: 1. Go to the [Chats page](https://portal.stedi.com/app/healthcare/chats) in the Stedi portal. 2. Click **New chat** and select **Payer Finder**. 3. Type your question in the chat window and press **Enter.** For example, you could ask "What is the payer ID for Aetna?" or "Does Cigna support dental eligibility checks?" You can also ask more complex questions, like "Which payers support dental eligibility checks and require transaction enrollment?" Talk to Stedi Agent like you would a human support agent. 4. Ask follow-up questions as needed. You can ask multiple questions about different payers in the same chat. The Stedi Agent will respond to your questions and display its answers in the chat window. ### What if my payer isn't available? [#what-if-my-payer-isnt-available] If a payer you need isn't in the network, [request a payer](https://www.stedi.com/healthcare/network/request-payer) and we'll add them. We're continuously expanding our network. ## Refresh payer data [#refresh-payer-data] Payer records can change. Payers merge, change names, receive new payer IDs, and shut down. Supported transaction types and enrollment requirements also sometimes change. We recommend refreshing your cached payer data at least once a day. Use [List Payers JSON](/healthcare/api-reference/get-payers) or [List Payers CSV](/healthcare/api-reference/get-payers-csv) to retrieve the full list of supported payers and their current details. When you store payer records, key them on the [Stedi payer ID](/healthcare/supported-payers#stedi-payer-id) so each refresh can update a payer's name and IDs without breaking your data relationships. Learn more about how to [use payer IDs in applications](/healthcare/supported-payers#use-payer-ids-in-applications). ## Supported transaction types and enrollment requirements [#supported-transaction-types-and-enrollment-requirements] Check whether the transaction types you want to send or receive are supported for each of your payers. For example, if the Payer Network shows that real-time claim status checks aren't supported, you can't send them to that payer. For supported transactions, check whether [transaction enrollment](/healthcare/transaction-enrollment) is required. Transaction enrollment is the process of registering a provider to exchange a specific healthcare transaction with a specific payer through Stedi. All payers require transaction enrollment for 835 ERAs. For other transactions, like claims and eligibility checks, it depends on the payer. - The [Payer Network](https://www.stedi.com/healthcare/network) shows **Transactions** for each payer. Transaction types are marked as **Supported** (enrollment not required), **Supported, enrollment required** (you must complete transaction enrollment first), or **Not supported** (transaction type not available for this payer). ![Payer Network - enrollment required for ERAs](/images/providers/payer-network-enrollment-required.png) - The [Retrieve Payer](/healthcare/api-reference/get-payer), [List Payers](/healthcare/api-reference/get-payers), and [Search Payers](/healthcare/api-reference/get-search-payers) endpoints return a `transactionSupport` object for each payer. Each property in the object has a value of `SUPPORTED` (enrollment not required), `ENROLLMENT_REQUIRED` (enrollment required), or `NOT_SUPPORTED` (transaction type not available). For example, the following `claimPayment` property shows that Blue Cross Blue Shield of North Carolina requires enrollment for 835 Electronic Remittance Advice (ERAs): ```json { "stediId": "UPICO", "displayName": "Blue Cross NC", "primaryPayerId": "BCSNC", "transactionSupport": { "claimPayment": "ENROLLMENT_REQUIRED", "claimStatus": "SUPPORTED", "coordinationOfBenefits": "SUPPORTED", "dentalClaimSubmission": "SUPPORTED", "eligibilityCheck": "SUPPORTED", "institutionalClaimSubmission": "SUPPORTED", "professionalClaimSubmission": "SUPPORTED", "unsolicitedClaimAttachment": "NOT_SUPPORTED" } // ... } ``` Learn more about [transaction enrollment](/healthcare/transaction-enrollment), including the enrollment process and how to submit enrollment requests. ## Payer IDs [#payer-ids] The Payer Network includes three types of payer IDs. You can use any of these IDs to send transactions through Stedi. You must include leading `0` characters in payer IDs. For example, use `00540` for SISCO, not `540`. ### Primary payer ID (recommended) [#primary-payer-id-recommended] The primary payer ID is the most commonly used ID for a payer and most often corresponds to the name the payer uses internally and provides to patients on member ID cards. When you don't already have a payer ID you use for a particular payer, we recommend using the primary Payer ID. ### Stedi payer ID [#stedi-payer-id] The Stedi payer ID is a unique identifier Stedi assigns to each payer. This ID will not change, even if the primary payer ID is updated. We maintain a list of Stedi payer IDs to ensure that 1) you can always refer to a payer using a consistent identifier, 2) we can more easily route requests to the payer through the most reliable connection behind the scenes, and 3) we can update our products without introducing breaking changes. You may want to use the Stedi payer ID for requests if you are building a system that requires a consistent and immutable set of payer IDs. ### Payer ID aliases [#payer-id-aliases] These are alternative IDs associated with a payer. If a payer changes their primary payer ID, payer ID aliases ensure that customers who still refer to the old ID can find the payer and continue sending transactions to the payer uninterrupted. Some payers also have different payer IDs for different plans. Payer ID aliases ensure that requests using these IDs are routed to the same payer. ### Use payer IDs in applications [#use-payer-ids-in-applications] We recommend the following best practices when using payer IDs in provider-facing applications: | ID Type | Best Practices | | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Stedi payer ID ([`stediId`](/healthcare/api-reference/get-payer#response.payer.stediId)) |
  • Use this ID as your internal system key when referencing payers in your database. It's a randomly-generated identifier that never changes, even if the payer updates their primary ID. This makes it reliable for long-term data relationships and foreign keys.
  • Don't display Stedi payer IDs to providers - they won't recognize them in association with specific payers. Stedi payer IDs are designed to be a stable, internal-only identifier.
| | Primary payer ID ([`primaryPayerId`](/healthcare/api-reference/get-payer#response.payer.primaryPayerId)) |
  • Use this ID as the single payer ID to display in your application's user interface. This is the ID most providers recognize because it corresponds to what payers use internally and show on member ID cards.
  • Display only the `primaryPayerId` in list views where you need to identify payers quickly.
| | Payer ID aliases ([`aliases`](/healthcare/api-reference/get-payer#response.payer.aliases)) |
  • Treat aliases as a broader set of alternate identifiers separate from the `primaryPayerId`. They represent historical IDs or plan-specific variations, which may be useful for search functionality, data migration, or handling legacy integrations.
  • Display the complete list of `aliases` in payer detail views where users might need to look up alternative IDs or understand the payer's ID history.
| ## Medical, dental, and vision coverage [#medical-dental-and-vision-coverage] Payers may support medical use cases, dental use cases, vision use cases, or all three. Coverage types only apply to batch and real-time eligibility checks. - The [Payer Network](https://www.stedi.com/healthcare/network) lists **Coverage types** for each payer that indicate supported eligibility check use cases. - The [Retrieve Payer](/healthcare/api-reference/get-payer), [List Payers](/healthcare/api-reference/get-payers), and [Search Payers](/healthcare/api-reference/get-search-payers) endpoints return a `coverageTypes` array for each payer indicating supported eligibility check use cases. For example, Aetna's **Coverage types** in the network are **Dental, Medical, Vision**. That means you can submit eligibility checks for medical, dental, and vision services to Aetna. ## Operating states [#operating-states] Operating states refer to the geographical areas where a payer sells insurance plans. This can differ from the location of the payer's legal headquarters and from the location of the patient's home or work address. For example, if a company is headquartered in Washington (WA), an employee in their Georgia office can still have Premera WA coverage. In this case, WA is the operating state because that's where the plan is sold. Operating states data can change rapidly for smaller payers. If you have questions about operating states for a specific payer, [contact us](https://www.stedi.com/contact). - The [Payer Network](https://www.stedi.com/healthcare/network) lists **Operating states** for each payer that indicate where they operate. - The [Retrieve Payer](/healthcare/api-reference/get-payer), [List Payers](/healthcare/api-reference/get-payers), and [Search Payers](/healthcare/api-reference/get-search-payers) endpoints return an `operatingStates` array for each payer indicating where they operate. For example, Cigna's **Operating states** in the network are **NATIONAL**, indicating that Cigna operates throughout the entire United States. ## Other payer names [#other-payer-names] The Payer Network includes other names for many payers. These additional names help you search for and identify payers using the name most familiar to your organization. For example, "Eaton Benefits Ohio" is an alternative associated with "Cigna" – searching for either name returns the same payer within the database. ## Stedi payer errors [#stedi-payer-errors] Stedi returns error messages when it doesn't recognize the payer ID you provided, or when the payer isn't configured for the transaction you sent. For example, eligibility checks return the following messages. Other transactions, such as claims, return similar messages. {/* prettier-ignore-start */} | Error message | Possible causes and resolutions | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Payer {payer ID} (Stedi Payer ID {Stedi payer ID}) is not configured for {transaction type}. Please check our published payer list or contact Stedi support to resolve.` | Stedi doesn't yet support this transaction type for this payer, or there's a mis-mapping of payer IDs. Contact us with the name of the payer, and we'll investigate the issue. | | `Payer {payer ID} is not configured. Please check our published payer list or contact Stedi support to resolve.` | Stedi doesn't recognize the payer ID you provided. Double-check the payer ID in the [Stedi Payer Network](https://www.stedi.com/healthcare/network), or contact us with the name of the payer, and we'll help you determine the correct payer ID. | {/* prettier-ignore-end */} # Test claim workflows Source: https://www.stedi.com/docs/healthcare/test-claims-workflow You can submit test professional, dental, and institutional claims through the APIs, SFTP, or Stedi portal. Stedi processes test transactions, applies all validation, and returns test responses without sending any data to the payer. If you're new to Stedi, submitting test claims is a great way to learn how claims processing at Stedi works. Stedi offers two test claim workflows for [production accounts](/healthcare/billing#account-types). Sandbox accounts can't submit test claims. - **[Test payer-specific edits](#workflow-1-test-payer-specific-edits):** Submit test claims to any payer and receive test 277CA claim acknowledgments from Stedi. - **[Generate a test ERA](#workflow-2-generate-a-test-era):** Submit test claims to the [Stedi Test Payer](https://www.stedi.com/healthcare/network?search=sted&entry=FRCPB) and receive both test 277CA and test 835 ERA responses from Stedi. Don't submit Protected Health Information (PHI) or Personally Identifiable Information (PII) in test claims. ## Get test credentials [#get-test-credentials] You need test credentials to send test claims and receive test responses. #### API - Test API key [#api---test-api-key] When submitting test claims through Stedi APIs, create a test API key: 1. Log into your [Stedi account](https://portal.stedi.com/app). 1. Click **API keys** in the side navigation. 1. Click **+ Generate new API Key**. 1. Enter descriptive name for the API key. 1. Choose **Test** as the **Mode**. 1. Click **Generate**. 1. Copy your key and store it in a secure location. Stedi won't show it again. Learn more about [API authentication](/healthcare/api-reference#authentication). #### SFTP - Test user [#sftp---test-user] When submitting test claims through Stedi SFTP, create a test user: 1. Go to the [SFTP setup](https://portal.stedi.com/app/settings/developer/sftp) page in your account settings. 2. Click **+ Add test user**. 3. Enter a description like "Test claims - Stedi Test Payer" and click **Create**. 4. Copy your credentials and store them in a secure location. Stedi won't show them again. Use your user credentials to connect to Stedi's SFTP server at `transfer.us.stedi.com` using Port 22. Visit [SFTP setup](/healthcare/submit-claims-sftp-setup#create-sftp-users) for more details. #### UI - Test mode [#ui---test-mode] Toggle **Test mode** to **ON** at the top of the side navigation. When test mode is on, you can: - Submit test claims through the CMS-1500 form. - Review test claim submissions and processing activity from the [claims view](https://portal.stedi.com/app/healthcare/claims). - Review test ERAs from the [835 ERAs view](https://portal.stedi.com/app/healthcare/claims/eras). ## Workflow 1: Test payer-specific edits [#workflow-1-test-payer-specific-edits] You can submit test claims to any payer. For each test claim, Stedi applies our entire catalog of [edits and repairs](/healthcare/claim-edits-and-repairs) (including any payer-specific edits) and returns a 277CA claim acknowledgment indicating whether it passed our validation. This test claims workflow helps you validate claim data for specific payers and practice handling and interpreting 277CA responses. It's only available for [production accounts](/healthcare/billing#account-types). ### Submit test claims and attachments [#submit-test-claims-and-attachments] You can submit test 837 claims and unsolicited [275 claim attachments](/healthcare/submit-claim-attachments) through Stedi APIs, SFTP, or the Stedi portal. Stedi processes these transactions and applies all validation without sending them to the payer. {/* prettier-ignore-start */} | Submission Method | Designate as Test | |-------------------|---------------------------| | **JSON APIs:** [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json), [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims), [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims), [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims), [275 Claim Attachments](/healthcare/api-reference/post-healthcare-create-claim-attachment) |
  • Use a test API key.
  • Stedi infers the mode - test or production - from the API key type.
  • For 837 JSON APIs, the `usageIndicator` is optional. If present, it must be `T`, otherwise Stedi rejects the request with an HTTP `403` error.
| | **Raw X12 APIs:** [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12), [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12), [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12), [275 Claim Attachments](/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12) |
  • Use a test API key.
  • Set `ISA15` to `T` (Test Data). If omitted, Stedi returns an HTTP `400` error with a TA1 rejection.
| | **SFTP:** [Docs](/healthcare/submit-claims-sftp-overview)|
  • Use an [SFTP test user](#sftp---test-user).
  • Set `ISA08` to `STEDITEST`. Set `ISA15` to `T` (Test Data).
| | **Portal:** CMS-1500 form |
  1. Toggle **Test mode** to **ON** in the side navigation.
  2. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click **Submit claim**.
  3. Select **CMS-1500 form**.
  4. Fill out and submit. You can add claim attachments in **Box 19b** or service-line attachments in **Box 24** to test that workflow. Stedi automatically routes to the test clearinghouse.
| {/* prettier-ignore-end */} #### Patient Control Number [#patient-control-number] We recommend setting a unique Patient Control Number (PCN) for each test claim in: - **JSON:** `claimInformation.patientControlNumber` - **X12 EDI:** `Loop 2300 CLM01` (Patient Control Number) - **CMS-1500 claim form UI:** Set Box 26 (Patient account number) This lets you and Stedi correlate each test claim with the associated test responses. To get started, simple numeric values like `11122333` are fine, as long as they're unique. For best results in production, implement our [PCN best practices](/healthcare/submit-professional-claims#patient-control-number). #### Examples [#examples] {/* replace::111222333444 */} ```bash curl --request POST \ --url https://claims.us.stedi.com/2025-03-07/professional-claim-submissions \ --header 'Authorization: Key ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: 0e1f9a8d-6c5b-4a3f-9d2e-7b8c1a0f4e6d' \ --data '{ "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerAcceptsAssignment": "ASSIGNED", "providerSignature": "ON_FILE" }, "billing": { "billingProvider": { "address": { "addressLine1": "123 St", "city": "City", "postalCode": "12345", "state": "IL" }, "identifiers": { "npi": "1999999984", "taxonomyCode": "207Q00000X" }, "name": { "organization": "Test Provider" } }, "patientControlNumber": "", "taxId": { "ein": "123456789" }, "totalCharge": "100.00" }, "encounter": { "attachments": [ { "attachmentControlNumber": "PWK-2026-0001", "reportTypeCode": "PROGRESS_REPORT", "transmissionCode": "ELECTRONICALLY_ONLY" } ], "claimCodes": [ "AV" ], "claimNote": { "additionalInformation": "Patient presented with persistent cough and bronchospasm; treated in office." }, "clinicalDates": { "hospitalization": { "end": "2026-03-06", "start": "2026-03-04" }, "initialTreatment": "2026-03-03", "onsetOfCurrentIllness": "2026-03-02", "unableToWork": { "end": "2026-03-10", "start": "2026-03-03" } }, "patientCondition": { "isAutoAccidentRelated": false, "isEmploymentRelated": false, "isOtherAccidentRelated": false }, "primaryDiagnosisCode": "J0190", "priorReferringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "John", "lastName": "Doe" } } }, "referenceNumbers": { "clia": "14D2089999", "priorAuthorization": "PA-2026-11111", "referral": "REF-4321" }, "referringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "resubmission": { "code": "REPLACEMENT_OF_PRIOR_CLAIM", "originalReferenceNumber": "CLM-ORIG-998877" }, "supervisingProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Smith" } } } }, "insured": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1990-01-01", "gender": "FEMALE", "insuranceType": "OTHER", "memberId": "W123456789", "name": { "person": { "firstName": "June", "lastName": "Doe" } }, "paymentResponsibilityLevelCode": "PRIMARY" }, "otherInsured": [ { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerGeneratedPatientSignature": false }, "claimFilingIndicator": "BLUE_CROSS_BLUE_SHIELD", "memberId": "BCBS-IL-554433221", "name": { "person": { "firstName": "Michael", "lastName": "Doe" } }, "otherPayer": { "id": { "payerId": "00621" }, "name": { "organization": "Blue Cross Blue Shield of Illinois" } }, "planName": "BCBS PPO", "policyOrGroupNumber": "BCBS-GRP-3344", "relationshipToInsured": "SPOUSE", "responsibilityLevel": "SECONDARY" } ], "patient": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1900-02-02", "gender": "MALE", "name": { "person": { "firstName": "Liam", "lastName": "Doe" } }, "relationshipToInsured": "CHILD" }, "payer": { "id": "60054", "name": { "organization": "Aetna" } }, "purpose": "CHARGEABLE", "serviceLines": [ { "datesOfService": { "end": "2026-03-03", "start": "2026-03-03" }, "diagnosisCodes": [ "J0190" ], "lineItemChargeAmount": "100.00", "placeOfService": "11", "procedureCode": { "code": "99213" }, "units": "1" } ], "submitter": { "contact": { "phoneNumber": "5555551234" }, "etin": "TEST001", "name": { "organization": "Test Submitter" } } }' ``` {/* schema:ClaimsSubmissionRequestContent */} {/* replace::111222333444 */} ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/submission" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "tradingPartnerName": "Cigna", "tradingPartnerServiceId": "CIGNA", "usageIndicator": "T", "billing": { "address": { "address1": "123 Some St", "address2": "Floor 1", "city": "A City", "postalCode": "123450000", "state": "NY" }, "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5553334444" }, "employerId": "123456789", "npi": "1999999984", "organizationName": "Therapy Associates", "providerType": "BillingProvider", "taxonomyCode": "207PH0002X" }, "claimInformation": { "benefitsAssignmentCertificationIndicator": "Y", "claimChargeAmount": "109.20", "claimFilingCode": "CI", "claimFrequencyCode": "1", "healthCareCodeInformation": [ { "diagnosisCode": "F1111", "diagnosisTypeCode": "ABK" } ], "patientControlNumber": "", "placeOfServiceCode": "02", "planParticipationCode": "A", "releaseInformationCode": "Y", "serviceFacilityLocation": { "address": { "address1": "1234 Other St", "city": "A City", "postalCode": "123450000", "state": "NY" }, "npi": "1999999984", "organizationName": "Smith Associates" }, "serviceLines": [ { "professionalService": { "compositeDiagnosisCodePointers": { "diagnosisCodePointers": [ "1" ] }, "lineItemChargeAmount": "109.20", "measurementUnit": "UN", "procedureCode": "90837", "procedureIdentifier": "HC", "procedureModifiers": [ "95" ], "serviceUnitCount": "1" }, "providerControlNumber": "111222333", "renderingProvider": { "firstName": "Jane", "lastName": "Smith", "npi": "1999999984", "providerType": "RenderingProvider", "taxonomyCode": "207PH0002X" }, "serviceDate": "20240101" } ], "signatureIndicator": "Y" }, "receiver": { "organizationName": "Stedi" }, "submitter": { "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5552223333" }, "organizationName": "Test Data Health Services, Inc.", "submitterIdentification": "0000001" }, "subscriber": { "address": { "address1": "2222 Random St", "city": "A City", "postalCode": "123450000", "state": "NY" }, "dateOfBirth": "20000101", "firstName": "John", "gender": "M", "groupNumber": "3335555", "lastName": "Anon", "memberId": "U7777788888", "paymentResponsibilityLevelCode": "P", "subscriberGroupName": "Test Group" } }' ``` ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/raw-x12-submission" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~NM1*41*2*Test Data Health Services, Inc.*****46*123435~PER*IC**TE*5552223333~NM1*40*2*Aetna*****46*6400~HL*1**20*1~PRV*BI*PXC*2084P0800X~NM1*85*2*Therapy Associates*****XX*1999999984~N3*123 Some St*Floor 1~N4*A City*NY*123450000~REF*EI*123456789~PER*IC*Test Data Health Services, Inc.*TE*5553334444~HL*2*1*22*0~SBR*P*18*3335555******CI~NM1*IL*1*Anon*John****MI*U7777788888~N3*2222 Random St~N4*A City*NY*123450000~DMG*D8*20000101*M~NM1*PR*2*Aetna*****PI*6400~CLM*SET_TO_UNIQUE_ID*109.2***02>B>1*Y*A*Y*Y~HI*ABK>F1111~NM1*77*2*Smith Associates~N3*1234 Other St~N4*A City*NY*123450000~LX*1~SV1*HC>90837>95*109.2*UN*1***1~DTP*472*D8*20240101~REF*6R*111222333~SE*29*0001~GE*1*39~IEA*1*000000039~" }' ``` ``` ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~ GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ ST*837*0001*005010X222A1~ BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~ NM1*41*2*Test Data Health Services, Inc.*****46*123435~ PER*IC**TE*5552223333~ NM1*40*2*Aetna*****46*6400~ HL*1**20*1~ PRV*BI*PXC*2084P0800X~ NM1*85*2*Therapy Associates*****XX*1999999984~ N3*123 Some St*Floor 1~ N4*A City*NY*123450000~ REF*EI*123456789~ PER*IC*Test Data Health Services, Inc.*TE*5553334444~ HL*2*1*22*0~ SBR*P*18*3335555******CI~ NM1*IL*1*Anon*John****MI*U7777788888~ N3*2222 Random St~ N4*A City*NY*123450000~ DMG*D8*20000101*M~ NM1*PR*2*Aetna*****PI*6400~ CLM*UNIQUE-ID-HERE*109.2***02>B>1*Y*A*Y*Y~ // Add unique PCN here HI*ABK>F1111~ NM1*77*2*Smith Associates~ N3*1234 Other St~ N4*A City*NY*123450000~ LX*1~ SV1*HC>90837>95*109.2*UN*1***1~ DTP*472*D8*20240101~ REF*6R*111222333~ SE*29*0001~ GE*1*39~ IEA*1*000000039~ ``` ### Test responses [#test-responses] Stedi emits the following test responses when you send test claims to any payer. #### 999s (SFTP) [#999s-sftp] For SFTP submissions, Stedi emits 999 Implementation Acknowledgments if we reject any transaction in your submission (including partial rejections). We emit 999s for both claim and claim attachment submissions. We strongly recommend monitoring the `from-stedi` directory for these error 999s that indicate rejections. Visit [Monitor for 999 rejections](/healthcare/submit-claims-sftp-retrieve-responses#monitor-for-999-rejections-strongly-recommended) for details. #### 277CAs [#277cas] For all submission methods, Stedi returns a test 277CA claim acknowledgment indicating whether it passed our validation. Visit [Retrieve test responses](#retrieve-test-responses) for instructions about how to review and interpret the 277CA response. ## Workflow 2: Generate a test ERA [#workflow-2-generate-a-test-era] When you submit test claims to the [Stedi Test Payer](https://www.stedi.com/healthcare/network?search=StediTest&entry=FRCPB), Stedi returns a test 277CA claim acknowledgment and a test 835 Electronic Remittance Advice (ERA) based on the original claim. Only test claims you send to the Stedi Test Payer generate a test 835 ERA. This test claims workflow lets you evaluate your claims processing integration from end to end. It's only available for [production accounts](/healthcare/billing#account-types). ### Enroll with the Stedi Test Payer [#enroll-with-the-stedi-test-payer] You must enroll your provider with the [Stedi Test Payer](https://www.stedi.com/healthcare/network?search=StediTest&entry=FRCPB) for **835 Claim payment** (`transactions.claimPayment`). You must complete the enrollment in production - you can't submit enrollments with a test API key or in test mode. Once the enrollment is complete, switch to test credentials to submit test claims and retrieve test responses. Submit an enrollment request through one of the following options: - **Stedi portal:** Toggle **Test mode** to **OFF** at the top of the side navigation. Follow the [UI submission instructions](/healthcare/create-manage-transaction-enrollments#individual-ui-submission) to create a provider record and then an enrollment request for the Stedi Test Payer. - **API:** Create a [production API key](/healthcare/api-reference#creating-an-api-key). Call [Create Provider](/healthcare/api-reference/post-enrollment-create-provider) and then [Create Enrollment](/healthcare/api-reference/post-enrollment-create-enrollment) to enroll that provider with the Stedi Test Payer. If you need to test ERAs for providers without an NPI: - Enroll with a dummy NPI value, such as `1999999984`. Stedi validates NPIs using the Luhn algorithm, so your dummy NPI must pass this check. - Use a random, unique tax ID when enrolling to avoid collisions with real tax IDs in other Stedi accounts. - Submit test claims with a state license number and the tax ID from your enrollment. Once submitted, Stedi automatically sets the enrollment request to `LIVE` status within one minute. You can start submitting test claims to the Stedi Test Payer immediately. ![Stedi Test Payer enrollment](/images/providers/stedi-test-payer-enrollment.png) ### Submit test claims and attachments [#submit-test-claims-and-attachments-1] You can submit test 837 claims and unsolicited [275 claim attachments](/healthcare/submit-claim-attachments) to the Stedi Test Payer. Include the billing provider identifiers you enrolled with the Stedi Test Payer. You can submit: - **Providers with an NPI:** NPI and tax ID - **Providers without an NPI:** tax ID and state license number By default, Stedi returns a test 835 Electronic Remittance Advice (ERA) that reports every service line as paid in full. However, you can use a member ID prefix to select a different payment outcome. Visit [Test ERA scenarios](#test-era-scenarios) for details. {/* prettier-ignore-start */} | Submission Method | Submit test claim | |-------------------|---------------------------| | **JSON APIs:** [Professional Claim JSON](/healthcare/api-reference/post-create-professional-claim-json), [837P JSON (Legacy)](/healthcare/api-reference/post-healthcare-claims), [837I JSON](/healthcare/api-reference/post-healthcare-institutional-claims), [837D JSON](/healthcare/api-reference/post-healthcare-dental-claims), [275 Claim Attachments](/healthcare/api-reference/post-healthcare-create-claim-attachment) |
  • Use a test API key.
  • Stedi infers the mode - test or production - from the API key type.
  • Set payer `id` to `STEDI`.
  • For 837 JSON APIs, set `tradingPartnerServiceId` to `STEDI` and the `usageIndicator` is optional. If present, it must be `T`, otherwise Stedi rejects the request with an HTTP `403` error.
  • Optionally set `subscriber.memberId` to a [scenario prefix](#test-era-scenarios) to choose the type of test ERA you get back.
| | **Raw X12 APIs:** [837P Raw X12](/healthcare/api-reference/post-healthcare-claims-raw-x12), [837I Raw X12](/healthcare/api-reference/post-healthcare-institutional-claims-raw-x12), [837D Raw X12](/healthcare/api-reference/post-healthcare-dental-claims-raw-x12), [275 Claim Attachments](/healthcare/api-reference/post-healthcare-submit-claim-attachment-raw-x12) |
  • Use a test API key.
  • Set `ISA15` to `T` (Test Data). If omitted, Stedi returns an HTTP `400` error with a TA1 rejection.
  • Set `Loop 2010BB` (Payer Name) `NM109` to `STEDI`.
  • Optionally set `Loop 2010BA` (Subscriber Name) `NM109` to a [scenario prefix](#test-era-scenarios) to choose the type of test ERA you get back.
| | **SFTP:** [Docs](/healthcare/submit-claims-sftp-overview) |
  • Use an [SFTP test user](#sftp---test-user).
  • Set `ISA15` to `T` (Test Data) and `ISA08` to `STEDITEST`.
  • Set `Loop 2010BB` (Payer Name) `NM109` to `STEDI`.
  • Optionally set `Loop 2010BA` (Subscriber Name) `NM109` to a [scenario prefix](#test-era-scenarios) to choose the type of test ERA you get back.
| | **Portal:** CMS-1500 form |
  1. Toggle **Test mode** to **ON** in the side navigation.
  2. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims) and click **Submit claim**.
  3. Select **CMS-1500 form**.
  4. Select the Stedi Test Payer.
  5. Complete and submit. You can add claim attachments in **Box 19b** or service-line attachments in **Box 24** to test that workflow. Stedi automatically routes to the test clearinghouse.
  6. Optionally set the **Value** field of **Box 1a** (Insured ID number) to a [scenario prefix](#test-era-scenarios) to choose the type of test ERA you get back.
| {/* prettier-ignore-end */} #### Patient Control Number [#patient-control-number-1] We recommend setting a unique Patient Control Number (PCN) for each test claim in: - **JSON:** `claimInformation.patientControlNumber` - **X12 EDI:** `Loop 2300 CLM01` (Patient Control Number) - **CMS-1500 claim form UI:** Set Box 26 (Patient account number) This lets you and Stedi correlate each test claim with the associated test responses. To get started, simple numeric values like `11122333` are fine, as long as they're unique. For best results in production, implement our [PCN best practices](/healthcare/submit-professional-claims#patient-control-number). #### Test ERA scenarios [#test-era-scenarios] You can generate test 835 Electronic Remittance Advice (ERAs) that report different payment outcomes, such as a denied or partially paid claim. To select a scenario, add one of Stedi's prefixes to the front of the unique member ID you were already going to send, such as `STEDI_DENIED_ABC123`. The prefix belongs on the subscriber, not on the patient (`Loop 2010CA`) or the other subscriber (`Loop 2330A`). When you select a scenario: - Stedi applies it to every service line of every claim under the same subscriber, using fixed amounts. - You can mix scenarios in X12 submissions that contain multiple claims. Stedi adjudicates each claim on its own subscriber's member ID and returns a separate test ERA for each one. {/* prettier-ignore-start */} | Scenario | Member ID prefix | Test ERA | |----------|--------------------------------|---------------------------| | **Paid in full** | `STEDI_PAID_`, or no prefix at all |
  • Service lines: paid in full at the charge you billed
  • Adjustments: none
  • Claim status: processed as primary
  • Payment method: `ACH`
| | **Partially paid** | `STEDI_PARTIALLY_PAID_` |
  • Service lines: paid at 60% of the charge you billed
  • Adjustments: 20% of the charge as a contractual adjustment (reason code `45`), 20% as patient responsibility (reason code `2`)
  • Allowed amount: 80% of the charge you billed, which is the paid amount plus patient responsibility
  • Claim status: processed as primary
  • Payment method: `ACH`
| | **Denied** | `STEDI_DENIED_` |
  • Service lines: paid $0
  • Adjustments: the full charge as a contractual adjustment (reason code `31`)
  • Claim status: denied
  • Payment method: `NON`, meaning no payment
| {/* prettier-ignore-end */} #### Examples [#examples-1] These examples set the subscriber's member ID to the `STEDI_PARTIALLY_PAID_` prefix. Stedi returns a test ERA that pays each service line at 60% of the billed charge, with 20% of the charge as a contractual adjustment and 20% as patient responsibility. {/* replace::1234567890 */} {/* replace::1234567890 */} {/* replace::111222333444 */} ```bash curl --request POST \ --url https://claims.us.stedi.com/2025-03-07/professional-claim-submissions \ --header 'Authorization: Key ' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: 0e1f9a8d-6c5b-4a3f-9d2e-7b8c1a0f4e6d' \ --data '{ "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerAcceptsAssignment": "ASSIGNED", "providerSignature": "ON_FILE" }, "billing": { "billingProvider": { "address": { "addressLine1": "123 St", "city": "City", "postalCode": "12345", "state": "IL" }, "identifiers": { "npi": "", "taxonomyCode": "207Q00000X" }, "name": { "organization": "Test Provider" } }, "patientControlNumber": "", "taxId": { "ein": "" }, "totalCharge": "100.00" }, "encounter": { "attachments": [ { "attachmentControlNumber": "PWK-2026-0001", "reportTypeCode": "PROGRESS_REPORT", "transmissionCode": "ELECTRONICALLY_ONLY" } ], "claimCodes": [ "AV" ], "claimNote": { "additionalInformation": "Patient presented with persistent cough and bronchospasm; treated in office." }, "clinicalDates": { "hospitalization": { "end": "2026-03-06", "start": "2026-03-04" }, "initialTreatment": "2026-03-03", "onsetOfCurrentIllness": "2026-03-02", "unableToWork": { "end": "2026-03-10", "start": "2026-03-03" } }, "patientCondition": { "isAutoAccidentRelated": false, "isEmploymentRelated": false, "isOtherAccidentRelated": false }, "primaryDiagnosisCode": "J0190", "priorReferringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "John", "lastName": "Doe" } } }, "referenceNumbers": { "clia": "14D2089999", "priorAuthorization": "PA-2026-11111", "referral": "REF-4321" }, "referringProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Doe" } } }, "resubmission": { "code": "REPLACEMENT_OF_PRIOR_CLAIM", "originalReferenceNumber": "CLM-ORIG-998877" }, "supervisingProvider": { "identifiers": { "npi": "1999999984" }, "name": { "person": { "firstName": "Jane", "lastName": "Smith" } } } }, "insured": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1990-01-01", "gender": "FEMALE", "insuranceType": "OTHER", "memberId": "STEDI_PARTIALLY_PAID_W123456789", "name": { "person": { "firstName": "June", "lastName": "Doe" } }, "paymentResponsibilityLevelCode": "PRIMARY" }, "otherInsured": [ { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "authorization": { "insuredAuthorizesAssignment": "YES", "patientReleasesMedicalInfo": "YES", "providerGeneratedPatientSignature": false }, "claimFilingIndicator": "BLUE_CROSS_BLUE_SHIELD", "memberId": "BCBS-IL-554433221", "name": { "person": { "firstName": "Michael", "lastName": "Doe" } }, "otherPayer": { "id": { "payerId": "00621" }, "name": { "organization": "Blue Cross Blue Shield of Illinois" } }, "planName": "BCBS PPO", "policyOrGroupNumber": "BCBS-GRP-3344", "relationshipToInsured": "SPOUSE", "responsibilityLevel": "SECONDARY" } ], "patient": { "address": { "addressLine1": "111 A Place", "city": "Somewhere", "postalCode": "123450000", "state": "IL" }, "dateOfBirth": "1900-02-02", "gender": "MALE", "name": { "person": { "firstName": "Liam", "lastName": "Doe" } }, "relationshipToInsured": "CHILD" }, "payer": { "id": "STEDI", "name": { "organization": "Stedi Test Payer" } }, "purpose": "CHARGEABLE", "serviceLines": [ { "datesOfService": { "end": "2026-03-03", "start": "2026-03-03" }, "diagnosisCodes": [ "J0190" ], "lineItemChargeAmount": "100.00", "placeOfService": "11", "procedureCode": { "code": "99213" }, "units": "1" } ], "submitter": { "contact": { "phoneNumber": "5555551234" }, "etin": "TEST001", "name": { "organization": "Test Submitter" } } }' ``` {/* schema:ClaimsSubmissionRequestContent */} {/* replace::1234567890 */} {/* replace::1234567890 */} {/* replace::111222333444 */} ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/submission" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "tradingPartnerName": "Stedi Test Payer", "tradingPartnerServiceId": "STEDI", "usageIndicator": "T", "billing": { "address": { "address1": "123 Some St", "address2": "Floor 1", "city": "A City", "postalCode": "123450000", "state": "NY" }, "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5553334444" }, "employerId": "", "npi": "", "organizationName": "Therapy Associates", "providerType": "BillingProvider", "taxonomyCode": "207PH0002X" }, "claimInformation": { "benefitsAssignmentCertificationIndicator": "Y", "claimChargeAmount": "109.20", "claimFilingCode": "CI", "claimFrequencyCode": "1", "healthCareCodeInformation": [ { "diagnosisCode": "F1111", "diagnosisTypeCode": "ABK" } ], "patientControlNumber": "", "placeOfServiceCode": "02", "planParticipationCode": "A", "releaseInformationCode": "Y", "serviceFacilityLocation": { "address": { "address1": "1234 Other St", "city": "A City", "postalCode": "123450000", "state": "NY" }, "npi": "1999999984", "organizationName": "Smith Associates" }, "serviceLines": [ { "professionalService": { "compositeDiagnosisCodePointers": { "diagnosisCodePointers": [ "1" ] }, "lineItemChargeAmount": "109.20", "measurementUnit": "UN", "procedureCode": "90837", "procedureIdentifier": "HC", "procedureModifiers": [ "95" ], "serviceUnitCount": "1" }, "providerControlNumber": "111222333", "renderingProvider": { "firstName": "Jane", "lastName": "Smith", "npi": "1999999984", "providerType": "RenderingProvider", "taxonomyCode": "207PH0002X" }, "serviceDate": "20240101" } ], "signatureIndicator": "Y" }, "receiver": { "organizationName": "Stedi" }, "submitter": { "contactInformation": { "name": "Test Data Health Services, Inc.", "phoneNumber": "5552223333" }, "organizationName": "Test Data Health Services, Inc.", "submitterIdentification": "0000001" }, "subscriber": { "address": { "address1": "2222 Random St", "city": "A City", "postalCode": "123450000", "state": "NY" }, "dateOfBirth": "20000101", "firstName": "John", "gender": "M", "groupNumber": "3335555", "lastName": "Anon", "memberId": "STEDI_PARTIALLY_PAID_U7777788888", "paymentResponsibilityLevelCode": "P", "subscriberGroupName": "Test Group" } }' ``` These examples set the subscriber's member ID to the `STEDI_PARTIALLY_PAID_` prefix. Stedi returns a test ERA that pays each service line at 60% of the billed charge, with 20% of the charge as a contractual adjustment and 20% as patient responsibility. ```bash curl --request POST \ --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/professionalclaims/v3/raw-x12-submission" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "x12": "ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~NM1*41*2*Test Data Health Services, Inc.*****46*123435~PER*IC**TE*5552223333~NM1*40*2*Stedi Test Payer*****46*STEDI~HL*1**20*1~PRV*BI*PXC*2084P0800X~NM1*85*2*Therapy Associates*****XX*1999999984~N3*123 Some St*Floor 1~N4*A City*NY*123450000~REF*EI*123456789~PER*IC*Test Data Health Services, Inc.*TE*5553334444~HL*2*1*22*0~SBR*P*18*3335555******CI~NM1*IL*1*Anon*John****MI*STEDI_PARTIALLY_PAID_U7777788888~N3*2222 Random St~N4*A City*NY*123450000~DMG*D8*20000101*M~NM1*PR*2*Stedi Test Payer*****PI*STEDI~CLM*SET_TO_UNIQUE_ID*109.2***02>B>1*Y*A*Y*Y~HI*ABK>F1111~NM1*77*2*Smith Associates~N3*1234 Other St~N4*A City*NY*123450000~LX*1~SV1*HC>90837>95*109.2*UN*1***1~DTP*472*D8*20240101~REF*6R*111222333~SE*29*0001~GE*1*39~IEA*1*000000039~" }' ``` ``` ISA*00* *00* *ZZ*574183004559 *ZZ*STEDITEST *260213*2039*^*00501*000000039*0*T*>~ GS*HC*574183004559*STEDITEST*20260213*203918*39*X*005010X222A1~ ST*837*0001*005010X222A1~ BHT*0019*00*01KHCBK84E40QQYJVXA5VVXG54*20260213*2038*CH~ NM1*41*2*Test Data Health Services, Inc.*****46*123435~ PER*IC**TE*5552223333~ NM1*40*2*Stedi Test Payer*****46*STEDI~ // Submit to Stedi Test Payer HL*1**20*1~ PRV*BI*PXC*2084P0800X~ NM1*85*2*Therapy Associates*****XX*1999999984~ // Billing IDs from enrollment N3*123 Some St*Floor 1~ N4*A City*NY*123450000~ REF*EI*123456789~ PER*IC*Test Data Health Services, Inc.*TE*5553334444~ HL*2*1*22*0~ SBR*P*18*3335555******CI~ NM1*IL*1*Anon*John****MI*STEDI_PARTIALLY_PAID_U7777788888~ // Partially paid scenario prefix N3*2222 Random St~ N4*A City*NY*123450000~ DMG*D8*20000101*M~ NM1*PR*2*Stedi Test Payer*****PI*STEDI~ // Submit to Stedi Test Payer CLM*UNIQUE-ID-HERE*109.2***02>B>1*Y*A*Y*Y~ // Unique PCN HI*ABK>F1111~ NM1*77*2*Smith Associates~ N3*1234 Other St~ N4*A City*NY*123450000~ LX*1~ SV1*HC>90837>95*109.2*UN*1***1~ DTP*472*D8*20240101~ REF*6R*111222333~ SE*29*0001~ GE*1*39~ IEA*1*000000039~ ``` ### Test responses [#test-responses-1] Stedi emits the following test responses when you submit test claims to the Stedi Test Payer. #### 999s (SFTP) [#999s-sftp-1] For SFTP submissions, Stedi also emits 999 Implementation Acknowledgments when we reject any transaction in your submission (including partial rejections). We emit 999s for both claim and claim attachment submissions. We strongly recommend monitoring the `from-stedi` directory for these error 999s that indicate rejections. Visit [Monitor for 999 rejections](/healthcare/submit-claims-sftp-retrieve-responses#monitor-for-999-rejections-strongly-recommended) for details. #### 277CAs and 835 ERA [#277cas-and-835-era] For all submission methods, Stedi returns the following responses within minutes: - A test 277CA claim acknowledgment indicating whether Stedi successfully processed the claim. Visit [Interpret test 277CAs](#interpret-test-277cas) for details. - A test 835 Electronic Remittance Advice (ERA) containing information from the original claim, including the same: - Provider information - Patient information - Service line details - Charges Test 835 ERAs identify the payee using the billing provider's tax ID from the claim submission. The ERA also includes whichever provider identifier you submitted in the 837 claim (NPI or state license number). Test 835 ERAs report every service line as paid in full unless you [choose a test ERA scenario](#test-era-scenarios). When you submit production claims, payers may send ERAs with outcomes you can't generate as test ERAs, including split and bundled claims. If Stedi rejects the claim in the 277CA, you won't receive a test 835 ERA. ## View test claims [#view-test-claims] You can view test claims from the [claims view](https://portal.stedi.com/app/healthcare/claims) in the Stedi portal. Toggle **Test mode** to **ON** in the side navigation to review test claims and their associated responses. ## Retrieve test responses [#retrieve-test-responses] The simplest way to review test claim responses is through the Stedi portal. Regardless of submission method (API, SFTP, or UI), Stedi displays test claims and associated responses on the [claims view](https://portal.stedi.com/app/healthcare/claims). You can also retrieve claim responses through Stedi's APIs or SFTP. ### Stedi portal [#stedi-portal] Toggle **Test mode** to **ON** in the side navigation. To review test 277CAs: 1. Go to the [claims view](https://portal.stedi.com/app/healthcare/claims). 2. Click a test claim to view a timeline of its processing activity. 3. Click an **Acknowledgment** (277CA) to review its details. Stedi displays key information about the 277CA, including the billing provider's information and status codes. To review test ERAs: 1. Click **835 ERAs** in the side navigation to go to the [835 ERAs view](https://portal.stedi.com/app/healthcare/claims/eras). Stedi displays a list of all test ERAs in your account. 2. Click an ERA to review its details. The **Claim payment information table** contains one row per claim payment information record. There's one row for each claim included in the test ERA. Click a row to view the claim payment information details specific to your test claim submission. ### APIs [#apis] To retrieve test responses: 1. Either use [event destinations](/healthcare/receive-claim-responses#set-up-event-destinations) or [poll for transactions](/healthcare/receive-claim-responses#poll-for-transactions). 2. Call Stedi's [277CA Report](/healthcare/api-reference/get-healthcare-reports-277), [835 ERA Report](/healthcare/api-reference/get-healthcare-reports-835), and [835 ERA PDF](/healthcare/api-reference/get-era-pdf) endpoints with a test API key. If you call these endpoints with a production API key, Stedi returns an HTTP `404` error. Visit [Get and correlate 277CAs and 835 ERAs](/healthcare/receive-claim-responses) for complete instructions. ### SFTP [#sftp] Stedi drops claim responses in your server's `from-stedi` directory. Visit [SFTP submission](/healthcare/submit-claims-sftp-retrieve-responses) for details. #### 999 settings [#999-settings] By default, you only receive 999s when Stedi rejects one or more transactions in a functional group. You can opt in to receive 999s for fully accepted functional groups as well. To change this: 1. Go to the [SFTP setup](https://portal.stedi.com/app/settings/developer/sftp) page. 2. Choose **All 999s** in the **999 settings** section. ### Match test responses to claim [#match-test-responses-to-claim] When retrieving test responses through Stedi's APIs or SFTP, you can use the Patient Control Number (PCN) to match both 277CA and 835 ERA responses with the original test claim. For 277CAs, the PCN is available in the following locations: - **JSON:** [`transactions[].payers[].claimStatusTransactions[].claimStatusDetails[].patientClaimStatusDetails[].claims[].claimStatus.patientAccountNumber`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus.patientAccountNumber) - **X12 EDI:** `Loop 2200D TRN02` (Patient Control Number) For 835 ERAs, the PCN is available in the following locations: - **JSON:** [`transactions[].detailInfo[].paymentInfo[].claimPaymentInfo.patientControlNumber`](/healthcare/api-reference/get-healthcare-reports-835#response.transactions.detailInfo.paymentInfo.claimPaymentInfo.patientControlNumber) - **X12 EDI:** `Loop 2100 CLP01` (Patient Control Number) ## Interpret test 277CAs [#interpret-test-277cas] When a test claim passes Stedi's validation, Stedi returns a 277CA with the following codes. These are the same codes you receive when Stedi forwards production claims to the payer. In [`providerClaimStatuses`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.providerClaimStatuses), which is `Loop 2200B` (Information Receiver Application Trace Identifier): - **[Claim Status Category Code](/healthcare/claims-code-lists#claim-status-category-code):** `A1` - Acknowledgment/Receipt - **[Claim Status Code](https://x12.org/codes/claim-status-codes):** `19` - Entity acknowledges receipt of claim/encounter. In [`claimStatus`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus), which is `Loop 2200D` (Claim Status Tracking Number): - **[Claim Status Category Code](/healthcare/claims-code-lists#claim-status-category-code):** `A1` - Acknowledgment/Receipt - **[Claim Status Code](https://x12.org/codes/claim-status-codes):** `16` - Claim/encounter has been forwarded to entity. ![277CA acceptance in the Stedi portal](/images/providers/test-claims-277CA-acceptance.png) When Stedi rejects your test claim, the 277CA contains error codes at the level with the problem: - **Submitter or receiver information**: [`providerClaimStatuses`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.providerClaimStatuses), which is `Loop 2200B` (Information Receiver Application Trace Identifier). - **Claim information**: [`claimStatus`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.claimStatus), which is `Loop 2200D` (Claim Status Tracking Number). - **Billing provider information**: [`serviceProviderClaimStatuses`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.serviceProviderClaimStatuses), which is `Loop 2200C` (Provider of Service Information Trace Identifier). - **A specific service line**: [`serviceClaimStatuses`](/healthcare/api-reference/get-healthcare-reports-277#response.transactions.payers.claimStatusTransactions.claimStatusDetails.patientClaimStatusDetails.claims.serviceLines.serviceClaimStatuses), which is `Loop 2220D` (Service Line Information). Use these codes to diagnose and fix the issues with your claim data. Visit [Interpret claim status](/healthcare/claim-status-codes#277ca-claim-acknowledgments) for more details and sample 277CA rejection codes. # Test mode Source: https://www.stedi.com/docs/healthcare/test-mode Simulate eligibility checks, claims, and other transactions in Stedi's test mode without PHI or sending data to payers. Test mode provides a separate test environment where you can realistically simulate transactions in your Stedi account without PHI/PII and without sending any data to payers. [Sandbox accounts](/healthcare/billing#sandbox-accounts) can only operate in test mode. Production accounts can access test mode at any time by toggling **Test mode** to **ON** in the side navigation. Test mode is for testing transactions intended for submission through Stedi and isn't a substitute for any paid Stedi product. Stedi applies fair use limits to test volume and may reject, throttle, or disable test traffic that exceeds them. ## Generate test API keys [#generate-test-api-keys] Test API keys allow you to send mock eligibility checks and test claims through Stedi's APIs. When submitting through Stedi's APIs, use a test API key: 1. Log into your [Stedi account](https://portal.stedi.com/app). 1. Click **API keys** in the side navigation. 1. Click **+ Generate new API Key**. 1. Enter descriptive name for the API key. 1. Choose **Test** as the **Mode**. 1. Click **Generate**. 1. Copy your key and store it in a secure location. Learn more about [API authentication](/healthcare/api-reference#authentication). ## Send mock eligibility checks [#send-mock-eligibility-checks] Mock transactions you send in test mode are free for testing purposes and won't incur any charges from Stedi. You can submit mock real-time eligibility checks through the manual [eligibility check form](https://portal.stedi.com/app/healthcare/checks/create) or through [Stedi's APIs](/healthcare/api-reference/mock-requests-eligibility-checks). You can choose from a variety of predefined requests for well-known payers, including: - Aetna - Cigna - UnitedHealthcare - National Centers for Medicare & Medicaid Services (CMS) For each mock request, Stedi returns a realistic mock benefits response for that payer so you can get a sense for the kinds of data you'll receive in production. The benefits responses include examples of copays, deductibles, and other patient payment responsibilities, as well as active coverage. You can also submit a mock Medicare Beneficiary Identifier (MBI) lookup. MBI lookups allow you to use a patient's Social Security Number (SSN) to retrieve their MBI and complete benefits information from the Centers for Medicare and Medicaid Services (CMS). ### Test the MCP server [#test-the-mcp-server] The Model Context Protocol (MCP) server works with test mode, allowing you to develop AI agents that work with eligibility data without transmitting PHI or PII. The MCP server is only available for [production accounts](/healthcare/billing). If you have a sandbox account, click **Upgrade account** in the side navigation to access the MCP server. The MCP server provides tools that AI agents can use to: - **Search for payers**: Find the correct payer ID and supported transaction types. - **Run eligibility checks**: Construct and submit properly formatted eligibility requests. - **Troubleshoot errors**: Get guidance on recovering from common errors like "Subscriber Not Found". You can connect the MCP server to AI agents using test API keys. Visit the [Model Context Protocol (MCP)](/healthcare/mcp-server) for full installation instructions and details. ## Review eligibility check results [#review-eligibility-check-results] After you submit a mock eligibility check, you can review all the request and response details. This includes: - A list of historical eligibility checks that you can filter by status, payer ID, date, and error code. - The raw API request and response. - A user-friendly benefits view designed to help you understand the patient's active coverage and payment responsibilities, such as co-pay and deductible amounts. - Eligibility check **Debug** view, which lets you systematically troubleshoot failed checks until you receive a successful response from the payer. To review an eligibility check's results: 1. Go to the [checks view](https://portal.stedi.com/app/healthcare/eligibility/checks). 2. Click the eligibility check with the benefits information you want to view. Stedi opens the eligibility check's **Overview** tab. Click **Benefits** to review a table of the mock benefits data. ![Benefits table overview](/images/providers/benefits-table-overview.png) ## Submit test claims and attachments [#submit-test-claims-and-attachments] Test claim submission is only available for [production accounts](/healthcare/billing). If you have a sandbox account, click **Upgrade account** in the side navigation to submit test claims. You can submit test claims and unsolicited claim attachments through the API, SFTP, or Stedi portal. Stedi offers two test workflows: - **Test payer-specific edits:** Submit test claims to any payer and receive test 277CA claim acknowledgments from Stedi. - **Generate a test ERA:** Submit test claims to the Stedi Test Payer and receive both test 277CA and test 835 Electronic Remittance Advice (ERA) responses from Stedi. Visit [Test claim workflows](/healthcare/test-claims-workflow) for complete instructions on submitting test claims, attachments, and retrieving test responses. ## Review test claims and responses [#review-test-claims-and-responses] You can view all test claims and their associated responses in the [claims view](https://portal.stedi.com/app/healthcare/claims) by toggling **Test mode** to **ON** in the side navigation. ## Test event destinations [#test-event-destinations] You can configure [event destinations](/healthcare/event-destinations-configure) in test mode. Event destinations automatically send Stedi events to your endpoint when Stedi resources change, such as when a file or transaction completes processing. Event destinations you create in test mode only receive test events. For example, if you submit a test claim, the event destination receives events like [`file.processed`](/healthcare/event-destinations-event-types#fileprocessed) when Stedi successfully processes the file, or [`transaction.processed`](/healthcare/event-destinations-event-types#transactionprocessed) when Stedi translates the claim into X12 EDI format. This lets you verify your endpoint handles Stedi events correctly before going live. You can also use test API keys with the [List Events](/healthcare/api-reference/get-event-destinations-list-events) and [Retrieve Event](/healthcare/api-reference/get-event-destinations-event) endpoints. When you use a test API key, these endpoints only return test events. ## Explore the Stedi portal [#explore-the-stedi-portal] The test environment lets you get familiar with Stedi's UI tools and learn more about how you can use Stedi to automate claims and eligibility check workflows. ## Not supported [#not-supported] Test mode doesn't support the following features: - Transaction enrollment - Agentic Discovery - Insurance discovery checks - Coordination of benefits (COB) checks - 276/277 real-time claim status - Custom mock data or payer selection for eligibility checks # Transaction enrollment FAQ Source: https://www.stedi.com/docs/healthcare/transaction-enrollment-faq Get answers to common transaction enrollment questions, such as whether you need to enroll, how long it takes, and what happens to existing ERAs. This FAQ provides answers to the most common questions about transaction enrollment. Please contact Stedi support with additional questions. ## How do I know if I need to enroll? [#how-do-i-know-if-i-need-to-enroll] All payers require transaction enrollment for 835 Electronic Remittance Advice (ERAs). For other transactions, like claims and eligibility checks, it depends on the payer. Check the [Payer Network](https://www.stedi.com/healthcare/network) to determine whether your payers require enrollment for the transaction types you want to send and receive. For transactions marked as **Supported, enrollment required**, you must complete the transaction enrollment process before you can begin exchanging that transaction type through Stedi. ## How long does transaction enrollment take? [#how-long-does-transaction-enrollment-take] The transaction enrollment process typically takes 24-48 hours, though it can take up to 30 days for some payers. ## Do I need to enroll through Stedi if I'm already enrolled through another clearinghouse? [#do-i-need-to-enroll-through-stedi-if-im-already-enrolled-through-another-clearinghouse] Yes. Enrollment is specific to each clearinghouse. So if a payer requires enrollment, you will need to go through the enrollment process with Stedi to begin exchanging transactions through the Stedi clearinghouse. ## What will happen to the ERAs I currently receive through a different clearinghouse? [#what-will-happen-to-the-eras-i-currently-receive-through-a-different-clearinghouse] ERAs can only be sent to a single clearinghouse. Once you enroll for ERAs through Stedi, all ERAs from that payer to the provider you enrolled will come through Stedi. The provider will no longer receive ERAs from that payer through your previous clearinghouse. ## Does enrolling with Stedi cancel my enrollment with another clearinghouse? [#does-enrolling-with-stedi-cancel-my-enrollment-with-another-clearinghouse] For ERAs, yes. Once you enroll for ERAs through Stedi, the payer will stop sending ERAs to your previous clearinghouse. For other transaction types, mostly no (with a few exceptions). For most payers that require enrollment for claim submission, eligibility checks, or claim status inquiries, enrolling through Stedi won't impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. ## Can a provider be enrolled through multiple clearinghouses at the same time? [#can-a-provider-be-enrolled-through-multiple-clearinghouses-at-the-same-time] Yes, for eligibility checks, claims, and claim status checks. For most payers that require enrollment for claim submission, eligibility checks, or claim status inquiries, enrolling through Stedi will not impact your ability to send transactions to your original clearinghouse. Only a few payers require the 837 claim to be sent to the same clearinghouse as the 835 ERA enrollment. For any questions on payer nuances, contact Stedi's support team. No, for ERAs. As soon as an ERA enrollment in Stedi is processed with the payer, you won't receive ERAs through your previous clearinghouse. ## Can I send claims through Stedi without switching my ERA enrollments? [#can-i-send-claims-through-stedi-without-switching-my-era-enrollments] Yes, you can start sending claims through Stedi without enrolling for ERAs. The ERAs will still go to your current clearinghouse. In Stedi, you'll see the claim and the 277CA claim acknowledgment from the payer, but you won't see ERAs until you switch those enrollments to Stedi. ## Can I enroll one NPI without affecting others associated with the same TIN (tax ID)? [#can-i-enroll-one-npi-without-affecting-others-associated-with-the-same-tin-tax-id] It depends on how the payer manages enrollment scope. Some payers manage enrollments at the NPI level - when you enroll one NPI, only that NPI switches to Stedi. Other payers manage enrollments at the Tax Identification Number (TIN) level - when you enroll one NPI, all NPIs under that TIN switch to Stedi. Payers vary in how they manage enrollment scope, and this information isn't always disclosed to Stedi. If you have multiple NPIs that share the same TIN and you want to keep some with your existing clearinghouse, contact Stedi support before submitting enrollment requests to discuss your specific situation. # Enrollment tasks and PDF documents Source: https://www.stedi.com/docs/healthcare/transaction-enrollment-tasks-documents After you submit an enrollment request, you may need to complete tasks to move the enrollment forward. Some tasks require you to upload documentation, such as completed forms or tax documents. Stedi is automatically notified when you complete a task, and the enrollment process continues. ## Task types [#task-types] Stedi uses structured task definitions to collect information from providers during enrollment. The API reflects each task type in the [`tasks[].definition`](/healthcare/api-reference/get-enrollment#response.tasks.definition) property. Stedi uses a flexible task definition (`manualTask`) to collect information for enrollment tasks. Each task can have: - An `instructions` property that describes what actions the provider must take to move the enrollment forward. - A `fields` array with objects describing discrete pieces of information required to complete the task. When `fields` are present, you must supply a value for every `field` to complete the task. The `fields` array may be empty if the task only requires following instructions - for example, following steps within a payer's portal. - A `links` array (optional) with helpful resources related to the task, such as payer portal URLs or reference documentation. Manual tasks can contain: {/* prettier-ignore-start */} | Field Type | Description | | ---------- | ----------- | | No fields | The provider must follow the directions in the task's `instructions` property. For example, the task may require logging into a payer portal or contacting a department. | | `TEXT` | The provider must supply specific pieces of information required to complete the enrollment, such as their bank account information or other identifiers. | | `DOCUMENT` | The provider must upload PDF documentation required to complete the enrollment. | | Mixed | Combines text and document requirements in one task. For example, a task may require uploading PDF documentation and supplying a bank account number. | {/* prettier-ignore-end */} For example, the following `manualTask` requests the provider's Medicaid ID and a signed agreement. ```json { "definition": { "manualTask": { "instructions": "Please provide your Medicaid Provider Identifier and upload the signed provider agreement.", "fields": [ { "key": "MEDICAID_ID", "label": "Medicaid Provider Identifier", "fieldType": "TEXT" }, { "key": "SIGNED_AGREEMENT", "label": "Signed Provider Agreement", "fieldType": "DOCUMENT" } ], "links": [ { "label": "Download Provider Agreement Template", "url": "https://example.com/documents/provider-agreement.pdf" } ] } } } ``` ## Manage tasks [#manage-tasks] When there's a new task that requires the provider to take action, Stedi adds a task to the enrollment request with instructions and sets the enrollment status to **Provider Action Required**. The email address listed as the **Stedi contact person** also [receives a notification](/healthcare/create-manage-transaction-enrollments#notifications) that there's a new task to complete. You can complete tasks through the Stedi portal or programmatically through the API. ### UI [#ui] You can review and manage tasks at the top of the enrollment request's details page in the Stedi portal. You must have the [Operator role](/healthcare/account-settings#assign-member-roles) or higher to complete enrollment tasks. If the task requires documentation, the instructions specify what you need to provide. Some tasks include a PDF template to download, complete, and upload to Stedi. Other tasks may ask you to upload a document you already have, such as a W-9 form. ![Enrollment task PDF upload](/images/providers/enrollment-pdf-upload-task.png) Once you've taken the required action, check the box next to the task to mark it as complete. ![Complete enrollment task](/images/providers/enrollment-task.png) ### API [#api] You may want to streamline your providers' workflows by allowing them to complete required enrollment tasks within your application. You can do this by integrating with Stedi's Enrollments API. Tasks use a structured format with defined fields. The workflow to complete them varies based on the contents of the `fields` array. #### Retrieve open tasks [#retrieve-open-tasks] When Stedi adds a new task, the enrollment status changes to **Provider Action Required** and Stedi emits an `enrollment.task.assigned` event. You can retrieve new tasks in two ways: {/* prettier-ignore-start */} | Method | Description | | ------ | ----------- | | **Polling** |
  1. Poll the [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments) endpoint with the `status` filter set to `PROVIDER_ACTION_REQUIRED` to retrieve enrollments with open tasks.
  2. For each result, check the `tasks` array for entries with `isComplete` set to `false`.
| | **Event destinations** |
  1. [Configure an event destination](/healthcare/event-destinations-configure) that automatically sends [`enrollment.task.assigned` events](/healthcare/event-destinations-event-types#enrollmenttaskassigned) to your endpoint. This allows you to receive real-time notifications when Stedi adds new tasks to an enrollment.
  2. Use the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint to get the full task details.
| {/* prettier-ignore-end */} #### Complete tasks in rank order [#complete-tasks-in-rank-order] You must complete tasks in order of their `rank` property. For example, you can't complete a task with rank `2` if there's an uncompleted task on the enrollment record with rank `1`. If you try to complete a task out of order, the [Update Enrollment Task](/healthcare/api-reference/post-enrollment-update-task) endpoint returns an HTTP `400` error. Ranks apply to every task on the enrollment, including internal tasks that Stedi owns. [Retrieve Enrollment](/healthcare/api-reference/get-enrollment), [List Enrollments](/healthcare/api-reference/get-enrollment-list-enrollments), and the Stedi portal return only the tasks assigned to you, so there can be outstanding tasks that aren't visible. If you receive a `400` error when completing a task, check the error message for the party responsible for the blocking task. For example, the following error shows that Stedi has an outstanding task to finish before you can complete yours: ```json { "message": "Cannot complete task 6f1c2b7e-3d4a-4e8b-9c5f-2a7d8e1b4c90 with responsibleParty = PROVIDER. A lower-ranked STEDI task must be completed first.", "fieldList": [ { "path": "completed", "message": "A lower-ranked STEDI task must be completed first." } ] } ``` When more than one task blocks completion, the message names the party responsible for the lowest-ranked one, such as `Multiple lower-ranked tasks must be completed first, starting with a STEDI task.` Once you know the blocking party, take the following action: - `PROVIDER`: Check the enrollment for a lower-ranked task with [`responsibleParty`](/healthcare/api-reference/get-enrollment#response.tasks.responsibleParty) set to `PROVIDER`. Complete the lowest-ranked one, then retry the request. - `STEDI`: Wait for the enrollment's [`status`](/healthcare/api-reference/get-enrollment#response.status) to change to `PROVIDER_ACTION_REQUIRED`, then retry the request. Stedi has a lower-ranked task on the enrollment, and you can't complete any of your tasks until Stedi resolves the blocking task. #### Follow instructions (no fields) [#follow-instructions-no-fields] Use the following steps to complete tasks with an empty `fields[]` array: Call the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint to get the task details. ```json { "responsibleParty": "PROVIDER", "definition": { "manualTask": { "instructions": "Log in to your Authority's portal and request clearinghouse access for Stedi.", "fields": [] } }, "rank": 0, "isComplete": false, "id": "019eb885-f8dd-74a0-9939-07ae6f15f4df" } ``` Follow the instructions in the `definition.manualTask.instructions` property. Call the [Update Enrollment Task](/healthcare/api-reference/post-enrollment-update-task) endpoint with `completed: true`. ```bash curl --request POST \ --url "https://enrollments.us.stedi.com/2024-09-01/tasks/019eb885-f8dd-74a0-9939-07ae6f15f4df" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "completed": true }' ``` #### Provide information (TEXT fields) [#provide-information-text-fields] Use the following steps to complete tasks with `TEXT` fields: Call the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint to get the task details. ```json { "responsibleParty": "PROVIDER", "definition": { "manualTask": { "instructions": "Please provide your Medicaid Provider Identifier.", "fields": [ { "key": "MEDICAID_ID", "label": "Medicaid Provider Identifier", "fieldType": "TEXT" } ] } }, "rank": 0, "isComplete": false, "id": "019eb887-82dc-7613-a279-8a4a2ba794fe" } ``` Review the `definition.manualTask.fields[]` array to understand what information is required. Each field definition has the following properties: - `key`: The identifier you'll use when submitting values. Keys must be in SCREAMING_SNAKE_CASE format, such as `MEDICAID_ID` or `ENROLLMENT_FORM`. - `label`: User-friendly field name. - `description` (optional): Additional context about the field. - `fieldType`: Set to `TEXT` for text input. Gather the text values needed for each field from the provider. Call the [Update Enrollment Task](/healthcare/api-reference/post-enrollment-update-task) endpoint a `values` array containing an object for each field. Each `value` object include the field's `key` and a `value` object containing the required text. ```bash curl --request POST \ --url "https://enrollments.us.stedi.com/2024-09-01/tasks/019eb887-82dc-7613-a279-8a4a2ba794fe" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "completed": true, "responseData": { "manualTask": { "values": [ { "key": "MEDICAID_ID", "value": { "text": "ABCD12" } } ] } } }' ``` #### PDF upload (DOCUMENT fields) [#pdf-upload-document-fields] Use the following steps to complete tasks with `DOCUMENT` fields: Call the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint to get the task details. ```json { "responsibleParty": "PROVIDER", "definition": { "manualTask": { "instructions": "Download form, sign and re-upload PDF", "links": [ { "label": "Enrollment Form", "url": "https://enrollments.us.stedi.com/2024-09-01/documents/019375d0-9876-7890-abcd-567890fedcba/download" } ], "fields": [ { "key": "ENROLLMENT_FORM", "label": "Signed PDF", "description": "Your filled-in and signed enrollment form, as a PDF", "fieldType": "DOCUMENT" } ] } }, "rank": 0, "isComplete": false, "id": "019eb887-82dc-7613-a279-8a4a2ba794fe" } ``` Review the task details: - `definition.manualTask.links[]`: Check if these are Stedi download URLs. - **Stedi download URLs** start with `https://enrollments.us.stedi.com/` and require authentication. You can use these to download a PDF template from Stedi for the required documentation. - **External links** point to resources outside Stedi (such as payer websites or reference documentation). - `definition.manualTask.fields[]`: Required document fields, each with a `key` and `label`. When a task requires downloading a form and reuploading the completed PDF, the task includes a `links` array with a URL to download the template. If no `links` array is present, check the instructions property for details about what supporting documentation (such as the provider's W-9 form) is required. Then, skip to step 4 to upload that documentation. To download a template: 1. Make an authenticated `GET` request to the URL in `links[].url`. This returns a pre-signed download URL. ```bash curl --request GET \ --url "https://enrollments.us.stedi.com/2024-09-01/documents/019375d0-9876-7890-abcd-567890fedcba/download" \ --header "Authorization: " ``` The pre-signed URL expires after 24 hours. If the URL expires before you download the PDF, call the endpoint again to get a new one. 2. Make a `GET` request to the returned `downloadUrl` to retrieve the PDF template. ```bash curl --request GET \ --url "" \ --output /path/to/file.pdf ``` Skip this step if uploading existing documentation. The provider should complete the PDF template according to the instructions in `definition.manualTask.instructions` and the field's `description` property. Upload the required PDF documentation to the enrollment request. This is either a completed enrollment PDF template or supporting documentation (such as a W-9) that Stedi requested. 1. Call the [Upload Enrollment Document](/healthcare/api-reference/post-enrollment-document-upload) endpoint with the enrollment ID and task ID. ```bash curl --request POST \ --url "https://enrollments.us.stedi.com/2024-09-01/enrollments/{enrollmentId}/documents" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "name": "signed-enrollment-form.pdf", "taskId": "019eb887-82dc-7613-a279-8a4a2ba794fe" }' ``` Stedi returns a pre-signed URL in the `uploadUrl` property you can use to upload the completed PDF to the enrollment request. The URL expires after 24 hours. If it expires, call the endpoint again to get a new one. You should also save the `documentId` returned in the response. You'll use it later to poll for the document's status and when completing the task. ```json { "enrollmentId": "db6675c5-7b07-4af9-8c68-a54a336d2911", "uploadUrl": "https://s3.amazonaws.com/enrollment-documents/db6675c5-7b07-4af9-8c68-a54a336d2911/provider-license.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...", "documentId": "doc-123e4567-e89b-12d3-a456-426614174000" } ``` 2. Make a `PUT` request to the `uploadUrl` to upload the completed PDF to Stedi. The request must include the `Content-Type: application/pdf` header. Only PDF documents are currently supported. ```bash curl --request PUT \ --url "" \ --header "Content-Type: application/pdf" \ --upload-file /path/to/file.pdf ``` You must wait for the document's status to change from `PENDING` to `UPLOADED` before marking the associated task as complete. This typically takes less than 10 seconds. You can poll the [Retrieve Enrollment](/healthcare/api-reference/get-enrollment) endpoint to check the status of the uploaded document. When the status is `UPLOADED`, the document has been successfully received and processed by Stedi. Our [TypeScript example](/healthcare/api-reference/post-enrollment-document-upload#poll-for-document-status) shows how you might poll. Once the document status is `UPLOADED`, call the [Update Enrollment Task](/healthcare/api-reference/post-enrollment-update-task) endpoint to mark the task as complete. Your payload must include a `values` array with one object per field. Each object should contain: - The field's `key` - A `value` object. The object must contain a `document` property with the `documentId` Stedi returned when you uploaded the PDF. ```bash curl --request POST \ --url "https://enrollments.us.stedi.com/2024-09-01/tasks/019eb887-82dc-7613-a279-8a4a2ba794fe" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "completed": true, "responseData": { "manualTask": { "values": [ { "key": "ENROLLMENT_FORM", "value": { "document": { "documentId": "019375d0-1234-7abc-9def-123456789abc" } } } ] } } }' ``` #### Mixed field types [#mixed-field-types] Manual tasks can combine `TEXT` and `DOCUMENT` fields in a single task. For example, a task may require uploading PDF documentation and supplying a bank account number. ```json { "responsibleParty": "PROVIDER", "definition": { "manualTask": { "instructions": "Please provide your Medicaid ID and upload signed enrollment PDF.", "links": [ { "label": "Enrollment Form", "url": "https://enrollments.us.stedi.com/2024-09-01/documents/019375d0-9876-7890-abcd-567890fedcba/download" } ], "fields": [ { "key": "MEDICAID_ID", "label": "Medicaid ID", "description": "Please provide your Medicaid ID.", "fieldType": "TEXT" }, { "key": "AGREEMENT_PDF", "label": "Enrollment PDF", "description": "Please sign PDF.", "fieldType": "DOCUMENT" } ] } }, "rank": 0, "isComplete": false, "id": "019eb887-82dc-7613-a279-8a4a2ba794fe" } ``` To complete a task with mixed fields: 1. Collect the required text values from the provider. 2. Follow the [DOCUMENT field workflow](#pdf-upload-document-fields) to upload required PDF documentation to Stedi. 3. Submit all values together in the `values[]` array and mark the task as complete. ```bash curl --request POST \ --url "https://enrollments.us.stedi.com/2024-09-01/tasks/019eb887-82dc-7613-a279-8a4a2ba794fe" \ --header "Authorization: " \ --header "Content-Type: application/json" \ --data '{ "completed": true, "responseData": { "manualTask": { "values": [ { "key": "MEDICAID_ID", "value": { "text": "ABCD12" } }, { "key": "AGREEMENT_PDF", "value": { "document": { "documentId": "3b4cea78-ab7b-40aa-a16e-0af6cfe5b4cc" } } } ] } } }' ``` ## Review and download documents [#review-and-download-documents] You can upload documents through [tasks](#task-types) Stedi assigns on the enrollment request. Stedi may also upload documentation throughout the enrollment process. You can review, download, or delete these documents as needed. Documents associated with an enrollment may include: - Completed enrollment forms - W-9 tax forms - Voided checks - Other documentation that Stedi completes and submits to the payer ### UI [#ui-1] To review, download, or delete documents associated with an enrollment request: 1. Go to the [Enrollments page](https://portal.stedi.com/app/healthcare/enrollments) and click the enrollment request. 2. Scroll to the **Documents** section at the bottom of the page. In the **Documents** section, click any document to view it in your web browser. You can also click **...** (ellipses) to the right of the document to: - Download the original PDF file. - Copy a secure link to view the file, which you can share with any member of your Stedi account. - Delete the file, if necessary. ![Transaction enrollment documents](/images/providers/enrollment-documents.png) ### API [#api-1] You can use the following API endpoints to manage documents on an enrollment request programmatically: - [Upload Enrollment Document](/healthcare/api-reference/post-enrollment-document-upload): Get a pre-signed URL to upload a PDF document related to a task. This endpoint requires a `taskId` - you can use it for [tasks with DOCUMENT fields](#pdf-upload-document-fields). - [Download Enrollment Document](/healthcare/api-reference/get-enrollment-document-download): Get a pre-signed URL to download a specific PDF document related to an enrollment request. - [Delete Enrollment Document](/healthcare/api-reference/delete-enrollment-document): Delete a specific PDF document related to an enrollment request. # Transaction enrollment Source: https://www.stedi.com/docs/healthcare/transaction-enrollment Transaction enrollment is the process of registering a provider to exchange specific healthcare transactions with a payer. It involves submitting information about the provider, including their name, tax ID, [NPI](/healthcare/national-provider-identifier), billing address, and contact information. ## Do I need to enroll my provider? [#do-i-need-to-enroll-my-provider] For 835 ERAs, always yes. For other transactions, it depends on the payer. Check the [Payer Network](https://www.stedi.com/healthcare/network) or use the [Payers API](/healthcare/api-reference/get-payers) to determine whether your payers require enrollment for the transaction types you want to send and receive. Each transaction type is marked as either: - Supported, enrollment not required - Supported, enrollment required - Not supported For example, the following payer record shows that Blue Cross Blue Shield of North Carolina requires enrollments for 835 ERAs, as indicated in the `transactionSupport.claimPayment` property. ```json { "stediId": "UPICO", "displayName": "Blue Cross Blue Shield of North Carolina", "primaryPayerId": "BCSNC", "transactionSupport": { "eligibilityCheck": "SUPPORTED", "claimStatus": "SUPPORTED", "claimSubmission": "SUPPORTED", "claimPayment": "ENROLLMENT_REQUIRED", "dentalClaimSubmission": "SUPPORTED", "professionalClaimSubmission": "SUPPORTED", "institutionalClaimSubmission": "SUPPORTED", "coordinationOfBenefits": "SUPPORTED", "unsolicitedClaimAttachment": "NOT_SUPPORTED" } // truncated for brevity } ``` If enrollment for a supported transaction type is: - **Not required:** The provider can start exchanging transactions through Stedi right away. They'll include their information (like their [NPI](/healthcare/national-provider-identifier)) in transactions as needed. - **Required:** The provider must complete transaction enrollment before they can start exchanging those transactions through Stedi. Note that ERA enrollment is exclusive to one clearinghouse. Switching a provider to Stedi stops ERA delivery through the previous clearinghouse. ## How long does enrollment take? [#how-long-does-enrollment-take] Most enrollments are completed within 24 - 48 hours. However, some payers may take up to 30 days, depending on their internal processes and requirements. Check out [FAQ](/healthcare/transaction-enrollment-faq) for answers to other common questions about transaction enrollment. ## Enrollment process [#enrollment-process] Stedi handles the entire enrollment process for you, including submitting the required information to the payer and monitoring the status of the enrollment. Here's how it works: The provider record includes the information required to enroll the provider with payers, including the provider's name, tax ID, [NPI](/healthcare/national-provider-identifier), and contact information. If the provider doesn't have an NPI, use `1999999984` as a placeholder. Visit [Submit claims for atypical providers](/healthcare/submit-claims-atypical-providers) for details. You can [create enrollment requests](/healthcare/create-manage-transaction-enrollments) individually through the Stedi portal, in bulk through CSV import, or programmatically through the API. Stedi gets alerted about new enrollment requests once they're in `STEDI_ACTION_REQUIRED` status. For each provider, you'll create one enrollment request per transaction type. For example, you would create three separate requests to enroll a provider for 837P professional claims, 270 real-time eligibility checks, and 835 ERAs. When we begin the enrollment process with the payer, we'll set the enrollment status to `PROVISIONING` and send you notifications. You can manage your [notification preferences](/healthcare/account-settings#notification-preferences) to control which notifications you receive. We'll also reach out to you in your dedicated Slack or Teams channel with resources and to answer any follow-up questions. For some payers, such as those with [one-click enrollment](/healthcare/transaction-enrollment#one-click-enrollment), Stedi can complete the entire enrollment process for you. We sign enrollment PDF forms on your behalf, when possible, to speed up the process and eliminate extra work for your team. If payers require additional steps from providers as part of their standard enrollment process, Stedi sets the enrollment status to `PROVIDER_ACTION_REQUIRED` and adds a task to the enrollment request with clear instructions. The enrollment process continues once the required tasks are completed. You can check which payers require additional steps on our [Transaction Enrollments Hub](https://enrollments.stedi.com/?v=1a7685bc14df80ed8e07000c941f6bff). Once the enrollment is approved, the enrollment status is set to `LIVE`, and the provider can start exchanging the enrolled transactions with the payer. ### Enrollment statuses [#enrollment-statuses] An enrollment request can have one of the following statuses: ![Transaction Enrollment statuses](/images/healthcare-apis/transaction-enrollment-statuses.svg) - `DRAFT`: You are still editing the record and it has not been submitted to Stedi. - `STEDI_ACTION_REQUIRED`: You have submitted the enrollment and it is ready for Stedi to begin processing. - `PROVIDER_ACTION_REQUIRED`: The enrollment requires action from the healthcare provider to proceed, such as providing additional documentation. Stedi will add a note to your enrollment request with clear instructions. - `PROVISIONING`: Stedi has begun the process of completing the enrollment with the payer. - `LIVE`: The enrollment process is complete, and the specified provider can begin exchanging the listed transaction types with the payer. - `REJECTED`: The payer rejected the enrollment. Common reasons for rejection include incorrect details in the request and that the provider is not credentialed with the payer. Customer support will contact you with reasons for rejection and next steps. - `CANCELED`: The enrollment has been terminated per customer or provider request. You can only [cancel enrollments](#cancel-enrollments) that are in `DRAFT`, `STEDI_ACTION_REQUIRED`, or `PROVIDER_ACTION_REQUIRED` status. ### One-click enrollment [#one-click-enrollment] We offer one-click enrollment for eligible payers. Once you submit the enrollment request, Stedi handles the entire process without any additional action from you. These payers don't require any signatures or documentation other than what is included in the enrollment request. You can determine whether a payer is eligible for one-click enrollment by: - Checking the [Payer Network](https://www.stedi.com/healthcare/network). Click a payer's name to view its details. Stedi lists the **Type** as **One-click** for transaction types that support one-click enrollment. - Calling the [Payers API](/healthcare/api-reference/get-payers). The `enrollment.transactionEnrollmentProcesses.{transactionType}.type` property is set to `ONE_CLICK` for transaction types that support one-click enrollment. ### Rejected enrollments [#rejected-enrollments] In rare cases, the enrollment status might be set to `REJECTED` if the payer denies the enrollment request. Rejection can happen for many reasons, but the most common are: - The provider isn't credentialed with the payer. If a payer rejects your transaction enrollment request with a message indicating the provider is "not on file" or "not recognized," it likely means the provider hasn't completed credentialing and payer enrollment with that payer. Visit [Credentialing and enrollment](/healthcare/credentialing-and-enrollment) to learn more. - There was incorrect data in the enrollment submission. If an enrollment is rejected, Stedi puts a note on the enrollment request explaining the reason and how to resolve it. You can review the note through the UI or API and contact Stedi support in Slack or Teams with any additional questions. # Manage payments Source: https://www.stedi.com/docs/healthcare/treasury-manage-payments Track EFT payments, check deposits, and payouts in the Stedi portal, and link each payment to its 835 ERA. [Contact Stedi Support](https://www.stedi.com/contact) to request access to Stedi Treasury. After you [set up Stedi Treasury](/healthcare/treasury-setup), you can track the following information in the Stedi portal. - [**Payments:**](#payments) An Electronic Funds Transfer (EFT) transaction or check deposit from a payer. Stedi processes each payment and waits for the funds to settle before initiating the payout. - [**Payouts:**](#payouts) An outbound Automated Clearing House (ACH) direct deposit to the external bank account configured for the business entity associated with the payment. - [**Bank statements:**](#bank-statements) PDFs showing credits and debits to the Stedi Treasury account Stedi uses to receive and disburse payments. You may want to use these PDFs for auditing and reporting. Stedi is a financial technology company, not a bank. Banking services are provided by Grasshopper Bank, N.A., Member FDIC. The FDIC's deposit insurance coverage only protects against the failure of an FDIC-insured bank. ## EFT payment flow [#eft-payment-flow] Here's how Stedi processes Electronic Funds Transfers (EFTs) from payers and deposits payments into your bank account: Stedi receives the EFT from the payer and creates a new row on the [Payments page](https://portal.stedi.com/app/healthcare/payments). The payment status is **Pending**, meaning Stedi received notice of the transaction and is waiting for the funds to settle in your Stedi Treasury account. You can click the payment record to view details, including the expected settlement date. The payment status changes to **Received** when the funds settle. Stedi doesn't hold funds in your Treasury account, so we automatically start the payout process to the external bank account for the business entity. Stedi creates a new row on the [Payouts page](https://portal.stedi.com/app/healthcare/payouts). The initial payout status is **Pending**, indicating that Stedi has requested our banking partner to transfer the settled funds to the external bank account. The payout status changes to **In transit** when Stedi's banking partner approves and initiates the transfer to the external bank account. If that happens before 4:45 PM ET on a business day, then you can expect funds to be transferred to your external bank account that day. Otherwise, you can expect the funds to be sent the next business day. The exact time that funds settle depends on your external bank. The payout status changes to **Paid** when the transfer to the external bank account is complete. Payments also include paper checks that Stedi deposits through Stedi Lockbox. Check deposits take longer to settle than EFTs because Stedi's partner bank holds the funds for a period before releasing them. Learn more in [Track check deposits](/healthcare/lockbox-manage#track-check-deposits). ## Review payment details [#review-payment-details] You can track how funds move through Stedi Treasury on the **Payments** and **Payouts** pages in the Stedi portal. Each payment from a payer has a corresponding payout to the business entity's bank account. ### Payments [#payments] The [Payments page](https://portal.stedi.com/app/healthcare/payments) shows all incoming funds transfers from payers to your Stedi Treasury account. Each payment record includes: - Payment amount - Payer name (when available) - Payment date - Reassociation trace number (for linking to ERAs) - Current status Click any payment to review its details, including links to the associated billing entity, 835 Electronic Remittance Advice (ERA), and [payout](#payouts) (when available). #### Payment statuses [#payment-statuses] Payments can have one of the following statuses: {/* prettier-ignore-start */} | Status | Description | | --- | --- | | **Pending** | Your Stedi Treasury account received the inbound ACH transfer or check deposit and is waiting for the funds to settle. | | **Received** | Your Stedi Treasury account received the inbound transfer from the payer, and the funds are available. | | **Failed** | The bank returned, rejected, or canceled the transfer. This status can occur at any point in the payment lifecycle. | {/* prettier-ignore-end */} #### Link to 835 ERA [#link-to-835-era] Stedi automatically links payments to their corresponding 835 Electronic Remittance Advice (ERA) using the value in the ERA's `TRN02` (Check or EFT Trace Number) element. To review the linked 835 ERA: 1. Go to the [Payments page](https://portal.stedi.com/app/healthcare/payments). 2. Click a payment to review its details. 3. Click **View 835 ERA** in the **835 ERA** section to go to the ERA's details page. ### Payouts [#payouts] The [Payouts page](https://portal.stedi.com/app/healthcare/payouts) shows all outgoing funds transfers from your Stedi Treasury account to your configured external bank account. Each payout record includes: - Payout amount - Destination bank account - Payout date - Current status Click any payout to review its details, including links to the associated billing entity and [payment](#payments). #### Filter payouts [#filter-payouts] Click the filter options at the top of the Payouts page to filter the list: {/* prettier-ignore-start */} | Filter | Description | | --- | --- | | **Status** | Show payouts with a specific [status](#payout-statuses), such as **Failed**. | | **Billing entity** | Show payouts for a specific billing entity. | {/* prettier-ignore-end */} #### Payout statuses [#payout-statuses] Payouts can have one of the following statuses: {/* prettier-ignore-start */} | Status | Description | | --- | --- | | **Pending** | Stedi submitted a request to transfer the funds to the external bank account. | | **In transit** | Our banking partner has begun transferring the funds to the external bank account.| | **Paid** | The funds have been successfully transferred to the external bank account. | | **Failed** | The bank returned, rejected, or canceled the transfer. This status can occur at any point in the payout lifecycle. | {/* prettier-ignore-end */} ## Bank statements [#bank-statements] You can access monthly bank statements showing all credits and debits to your Stedi Treasury account. Bank statements are useful for accounting, reporting, or auditing purposes. Bank statements match the activity shown in the Payments and Payouts pages and include: - **Credits:** Funds from payer Electronic Funds Transfer (EFT) transactions and check deposits. These match the [payments](#payments) for your account in the Stedi portal. - **Debits**: Payouts to the external bank account for the business entity. These match the [payouts](#payouts) for your account in the Stedi portal. To access bank statements: 1. Click **Billing entities** in the side navigation to go to the [Billing entities page](https://portal.stedi.com/app/healthcare/billing-entities). 2. Click a billing entity to review its details. 3. Go to the **Statements** tab. Stedi displays a list of monthly statements for the Stedi Treasury account associated with this billing entity. # Overview Source: https://www.stedi.com/docs/healthcare/treasury-overview Receive healthcare payments through Stedi. Stedi Treasury handles EFT payments, and Stedi Lockbox handles paper checks. After a payer adjudicates a claim and sends an [835 Electronic Remittance Advice (ERA)](/healthcare/claim-responses-overview#835-electronic-remittance-advice-era), they pay the provider through either a physical check or an Electronic Funds Transfer (EFT). Stedi Treasury helps you manage inbound payments in one place: - **Electronic Funds Transfer (EFT)**: Stedi Treasury has built-in support for receiving EFT payments. In the Stedi portal, you can review incoming payments, link them to their corresponding 835 ERAs, and track payouts to your bank account. - **Paper checks**: Stedi Lockbox receives paper checks at a dedicated mailing address and deposits them through Treasury. You can review scanned mail and track check deposits in the Stedi portal alongside EFT payments. [Contact Stedi Support](https://www.stedi.com/contact) to request access to Stedi Treasury. Stedi Lockbox access is included with Treasury. ## Stedi Treasury [#stedi-treasury] Stedi Treasury consolidates payments into the same platform you use for claims and 835 Electronic Remittance Advice (ERAs). Treasury automatically links each payment to its corresponding ERA in the Stedi portal and deposits funds directly to your bank account. ### Benefits [#benefits] Treasury includes: - **Managed enrollments**: Providers must complete [transaction enrollment](/healthcare/transaction-enrollment) with payers before they can receive Electronic Funds Transfers (EFTs). Stedi helps manage the entire process, including generating voided checks, bank verification letters, validating micro-deposits, and responding to payer verification requests. We can complete most of these steps independently, contacting you only when necessary. This removes most of the administrative burden from the standard multi-step enrollment process. - **Automated reconciliation**: We automatically match each payment you receive to its corresponding 835 ERA, eliminating manual reconciliation work. We also charge fees separately to ensure the payment amount you receive matches the amount the payer sent. - **Direct deposit**: We handle setting up a Stedi Treasury account, an FDIC-insured bank account for your business, that holds incoming funds from the payer. From there, your payout is deposited directly to your external bank account. - **Same-day payouts**: When your Stedi Treasury account receives a payment before 4:45 PM ET on a business day, you can expect the funds to be transferred to your external bank account that day. Otherwise, you can expect the funds to be sent the next business day. The exact time that funds settle depends on your external bank. - **Broad payer coverage**: Hundreds of payers support EFTs through Treasury, with new payers added weekly. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. - **Guided setup**: Complete business verification, link your external bank account, and submit EFT enrollments in minutes through the Stedi portal. ### How it works [#how-it-works] [Contact Stedi Support](https://www.stedi.com/contact) to request access to Stedi Treasury. After review, Stedi can enable Treasury features in your account. Complete the setup process to start receiving payments. - Create a billing entity for each legal entity that receives payments. - Connect your external bank account for payouts. - Complete EFT transaction enrollment with each payer. Learn more in [Set up Stedi Treasury](/healthcare/treasury-setup). Track payments and payouts in the Stedi portal. - Stedi processes incoming payments from payers. These payments appear in the Stedi portal as **Pending**, then **Received** once funds settle. - Stedi processes settled payments and initiates payouts to your linked external bank account. - You can review payment and payout details in the Stedi portal and view links between payments and their corresponding 835 ERAs. Learn more in [Manage payments](/healthcare/treasury-manage-payments). Stedi is a financial technology company, not a bank. Banking services are provided by Grasshopper Bank, N.A., Member FDIC. The FDIC's deposit insurance coverage only protects against the failure of an FDIC-insured bank. ## Stedi Lockbox [#stedi-lockbox] Stedi Lockbox handles paper checks and other payer mail. Stedi gives each billing entity a dedicated mailing address, scans every item of mail that arrives, and deposits paper checks into the billing entity's Treasury account. You can review scanned mail and track check deposits in the Stedi portal alongside your EFT payments. Learn more in [Stedi Lockbox](/healthcare/lockbox-overview). ## Next steps [#next-steps] Configure your billing entity and external bank account. Submit Electronic Funds Transfer (EFT) transaction enrollment requests for each payer. # Set up Stedi Treasury Source: https://www.stedi.com/docs/healthcare/treasury-setup Set up Stedi Treasury to receive payer payments. Create a billing entity, connect your bank account, and submit transaction enrollment. [Contact Stedi Support](https://www.stedi.com/contact) to request access to Stedi Treasury. You must complete the following steps to receive payments through Stedi Treasury: 1. [**Create a billing entity:**](#1-create-a-billing-entity) Submit an application for each legal entity that receives payments. 2. [**Connect your bank:**](#2-connect-your-bank) Add details for the bank account where you want to receive payouts. 3. [**Submit transaction enrollment:**](#3-submit-transaction-enrollment) Enroll providers for EFT transactions with each payer. These steps can often be completed in minutes, although the exact time may vary depending on your organization's legal structure and the payers you choose to enroll with. ## 1. Create a billing entity [#1-create-a-billing-entity] A billing entity is the legal recipient of funds, anchored on an Employer Identification Number (EIN) or Social Security Number (SSN). Each billing entity has a Stedi Treasury account at FDIC-insured Grasshopper Bank. You hold legal title to the funds in this account. A single Stedi account can have multiple billing entities. You must create a billing entity for each legal entity that receives payments through Stedi Treasury. In most cases, these entities have separate tax identification numbers (TINs), such as Social Security Numbers (SSNs) or Employer Identification Numbers (EINs). For example, if you manage payments for multiple providers, each with a separate EIN, you'd create separate billing entities. To help the government combat terrorism and money laundering, federal law requires all financial institutions to obtain, verify, and record information identifying each person who opens an account. When you open an account, we ask for your name, address, date of birth, taxpayer identification number, and other information that helps us identify you and your business, including the business's beneficial owners. We may also ask to see identifying documents. The billing entity's tax ID must match the tax ID you use as the billing identifier in your claims and in your transaction enrollments. ### Complete the application [#complete-the-application] To create a new billing entity application: 1. Click **Billing entities** in the side navigation to go to the [Billing entities page](https://portal.stedi.com/app/healthcare/billing-entities). 2. Click **Create billing entity**. Stedi starts the business verification workflow. 3. Complete the form. - Once you've started your application, you can leave the page and come back later. Stedi saves your progress as a **Draft** submission on the [Onboarding applications tab](https://portal.stedi.com/app/healthcare/billing-entities/onboarding). Click a draft application to continue working. - You can't make changes after submission, so only submit when you're sure all the information is complete and correct. - Refer to [application guidance](#application-guidance) while entering the information. 4. Read and accept the agreements, policies, and authorization documents, then click **Submit for verification**. The following video shows how to create a billing entity in the Stedi portal.